コメントするGoogleカスタム検索広告をWordPressに導入する方法WordPressの自分のサイト内の検索ボックスから、自分のサイト内の記事検索をする時に、検索文字に関連したGoogle広告を表示させることができる。カスタム検索広告と呼ばれている。検索向けのAdSenseには2種類ある。1.自分の(WordPressの)検索機能を使った検索結果にAdSenseを表示させる「カスタム広告検索(CSA)」2.Googleの提供する「AdSense検索エンジン」を埋め込む今回はこのパターン1のカスタム検索広告(CSA)導入方法のメモ。パターン2はGoogleから提供されるコードを貼りつけるだけなので簡単。カスタム検索広告(CSA)のメリットAdSense検索エンジンの場合はGoogleの検索システムを使うので、検索の表示のされ方や広告の表示のされ方、フォント、色などカスタマイズできない部分が多い。検索結果の表示順や、デザインのカスタマイズ性が低いため、自分のサイトの雰囲気に合わない場合がある。一方で、カスタム検索広告(CSA)は、元々WordPressで使っている検索機能に、Googleの広告を表示させるだけなので、検索結果や表示順、デザインは今まで通りだ。これは大きなメリットだと言えると思う。簡単にポイントを箇条書きしておく。・WordPress検索機能で検索された「文字列(クエリ)」をGoogleに渡す必要がある・CSAのリクエストはアクション1回につき1件のみ・コードを設置(広告を表示)できるのは検索結果ページのみ・ユーザーに対して検索を誘導してはいけない(例えば、「ぜひ、検索してください!」などと書いてはいけない)・CSAは検索結果と共に表示する(検索結果を表示せず広告だけを表示してはいけない)・検索結果の件数より広告の数のが多くなってはいけない・上記の環境を整えたテストページを作って、Googleの担当者にチェックしてもらわなければいけない・テストページのレイアウトやデザインは本環境と一致していなければいけない・チェック前の段階では、一般ユーザーに影響がある形でテストページを公開してはいけない(PVがほぼないページならOK)なかなか面倒だが、一つずつこなしていけば実装可能なので頑張っていこう。CSAのコードを貼りつける。AFSのコードはこんな感じだ。Date})(window,'_googCsa');</script>これは管理画面のテーマエディターからできる。(WordPressの子テーマ化は完了している前提)このコードはGoogleタグマネージャーを使うと動かないので、直接head内に貼り付けること。内にコードを貼りつけるだけではダメ。PHPを使ったり色々な方法があるが、ここではJavaScriptを使った方法を紹介。下記のコードの記述したjsファイルを用意する。ファイル名は何でもいいが、ここでは「afs-body.js」とした。WordPressの子テーマフォルダ内にアップロード。場所はどこでもいいが子テーマフォルダ内に「js」フォルダを作ってその中にアップロード。mySearchQuery.searchQuery;」で、WordPressのクエリをsearchQuery(変数)に代入し、そのままGoogleの”query”に渡している。これをfunctions.phpから呼び出すように設定する。ステップ3続いて、WordPress管理画面の「外観」→「テーマエディター」から「functions.php」に下記を追記。'my_wp_footer');これで、jsフォルダ内のafs-body.jsを呼び出す。WordPressでGoogleによる審査用のテスト環境ページを作るステップ1子テーマの中に、search.phpとsearchform.phpを親テーマからFTPなどを利用してコピーして入れる。それぞれをsearch-test.phpとsearchform-test.phpに名称変更する。※SANGOのテーマでsearch.phpとsearchform.phpという名前だが、テーマによっては名前が違う可能性がある。要は検索フォーム用のテンプレートと、検索結果を表示するテンプレート。これは、テスト環境用の検索フォームと検索結果ページを新たに作る必要があるため。searchform-test.phpの中身のpost_typeのvalueを「post」→「test」に変更。/>※これは見た目で区別がつけやすいためだけなので、別にやらなくてもいい。?></button>search-test.php(検索結果ページ)は、タグsearchでなくsearch-testの結果から取得するようにするため「search」→「search-test」に変更。?>」の検索結果</h1>search-test.phpの検索結果一覧表示の上あたりに、広告タグを入れたいところなのだがGoogleの検索広告のポリシーに「検索結果の件数より広告の数のが多くなってはいけない」というのがあるため、検索結果が0件だった場合には広告を表示させてはならない。いうことで、下記の広告タグは別の場所に入れることにする。id="afscontainer1"></div>search-test.phpの「post-grid」を「post-grid-test」に変更。get_template_part('parts/post-grid-test');//記事一覧?>これでsearch-test.phpで表示される検索結果一覧の部分はparts/post-grid-test.phpを参照するようにする。親テーマフォルダから「parts/post-grid.php」ファイルを、子テーマフォルダにコピーして入れる。子テーマ無いのファイルを「post-grid-test.php」に名称変更しておく。post-grid-test.phpの22行目あたりから広告タグを追加する。0;検索結果の表示スタイルによって場合分けされているので、43行目あたりにもに忘れないように追加しておく。?>※なお、この辺りもSANGOのテーマの話なので、ファイル名やディレクトリはテーマによって異なるかと思う。);これで、searchform-test.phpをテンプレートとして読み込ませつつ、ショートコードとして登録。→記事中にsearchform-testを埋め込めるように。);これは管理画面にtestっていうスラッグで新たなメニューを追加。「投稿」とは別に「投稿」と同じ要素を持ったカスタム投稿タイプを追加(記事一覧には出てこないようにしてるのもここ)。イメージとしては完全別ページのカテゴリを追加みたいな感じ。カスタム投稿タイプの追加はプラグインを使ってでもできる。カスタム投稿「test」に適当に本記事をコピペする。Googleの検索広告を表示させる時に検索結果がゼロではダメなので、「test」にも何個か記事が必要なため。コピペ記事とは別に「test」に新規投稿。この記事にsearchform-test.phpを埋め込む。functions.phpに記載してショートコード[search]として登録しているので、それ呼び出す。