WordPressというか使っているテーマのカスタマイズでサイドバーの出し分け
ポリシー違反にならない為に
先日、審査に無事合格し「Google AdSense」を導入させてもらった。しかしここで、ひとつ困ったことが発生した。
AdSense ヘルプの『広告の配置に関するポリシー』によれば、404エラーページなどにはAdSenseを設置できないのだ。
手続き完了ページ、離脱ページ、ログインページ、エラーページでの広告掲載
コンテンツを含まないページ(手続き完了ページ、離脱ページ、ログインページ、エラーページなど)に広告を掲載することは許可されません。(後略)
このサイトではWordPress+某テーマ(HTMLソースを見れば何を使ってるかは分かるけどw)で構築してるが、このテーマではそういった広告の表示・非表示の制御ができない事に気づく。
だからといって今更テーマを替えるのも面倒だし、ギミックに走り過ぎて特にCSSの基礎部分に詰めの甘さを感じる作りではあるが、見た目だけは気に入っているし、という事で「広告アリと広告ナシを出し分けすればいい」という解決策に直ぐにたどり着くのだが、肝心のそのやり方が分からないw
ところで、『広告の配置に関するポリシー』では「お問い合わせページ」については言及がなかったが、このページもAdSenseは外した方がいいだろうという判断で(李下に云々)、取り急ぎ固定ページ属性の「お問い合わせページ」と「404エラーページ」について、AdSenseが表示されないようにすべく色々と調べてみた。
以下、使用しているテーマのコードを晒す事はできないためザックリした感じになるが、誰かの参考になれば幸いである。
- 環境&前提条件
- 問題になるのは、サイドバー部分に設置したAdSenseである。ヘッダーの広告はGoogle AdSenseの広告ではない。
- functions.phpで、サイドバーウィジェットに関連するカスタマイズが既に成されている。
- お問い合わせページは、固定ページの「page.php」から派生した問い合わせページ用のPHPファイル「page-otoiawase.php」がテーマ側で既に用意されている。
- 404エラーページは、テーマ側で既に「404.php」ファイルが用意されている。
- 過程&目標
- できればスマートにいきたいけどw 方法は問わない。
- 最終的には「お問い合わせページ」と「404エラーページ」では、通常表示されるサイドバーの広告が出ないようにできれば問題ない。
作成の手順をざっくりと説明する
functions.phpの修正
まず、FTPクライアントソフトなどで、サーバ上のファイル一式をローカル環境にダウンロードしておく事。そして、使用しているテーマのディレクトリ(フォルダ)内にある「functions.php」をテキストエディタで開いて、サイドバーウィジェットに関する部分を見つける。原本となるfunctions.phpのバックアップは忘れずに!
※ここまでの説明が意味不明という事であれば、この作業自体を諦めた方がいい。
この工程で参考になるサイト
見つけたらサイドバーウィジェットを1つ追加する要領で、該当ブロックを丸ごとコピペする
register_sidebar( array(
'name' => 'サイドバーコンテンツ',
'id' => 'sidebar',
'description' => 'サイドバーに表示するコンテンツエリアです',
'before_widget' => '<aside class="widget-block">',
'after_widget' => '</aside>',
'before_title' => '<h2 class="widget-ttl">',
'after_title' => '</h2>',
));
「▲これ▲」が「▼このよう▼」に1ブロックをそのまま増やした状態に。
register_sidebar( array(
'name' => 'サイドバーコンテンツ',
'id' => 'sidebar',
'description' => 'サイドバーに表示するコンテンツエリアです',
'before_widget' => '<aside class="widget-block">',
'after_widget' => '</aside>',
'before_title' => '<h2 class="widget-ttl">',
'after_title' => '</h2>',
));
register_sidebar( array(
'name' => 'サイドバーコンテンツ',
'id' => 'sidebar',
'description' => 'サイドバーに表示するコンテンツエリアです',
'before_widget' => '<aside class="widget-block">',
'after_widget' => '</aside>',
'before_title' => '<h2 class="widget-ttl">',
'after_title' => '</h2>',
));
次に、自分がコピペして増やした方の「サイドバーコンテンツ」の’name’、’id’、’description’を書き換えていく。’name’と’description’は英語でも日本語でお好きなように。管理画面を利用する人に向けての名前と説明なので、他と区別ができる文字列であればOK。
但し、’id’については「sidebar」と「-(半角ハイフン)」まではWordPressの仕様なので変更不可。その後に続く文字列は半角英字(半角数字も使えるかは不明。試してないのでw)。もちろん、この’id’が他と被るのはNG。
※この’id’がキモ!
register_sidebar( array(
'name' => '広告無サイドバーコンテンツ',
'id' => 'sidebar-noads',
'description' => 'エラーページなどで使用するサイドバーです',
'before_widget' => '<aside class="widget-block">',
'after_widget' => '</aside>',
'before_title' => '<h2 class="widget-ttl">',
'after_title' => '</h2>',
));
これで基となった「サイドバーコンテンツ」と、増やした方の「サイドバーコンテンツ」が以下の状態になっているはずだ。
register_sidebar( array(
'name' => 'サイドバーコンテンツ',
'id' => 'sidebar',
'description' => 'サイドバーに表示するコンテンツエリアです',
'before_widget' => '<aside class="widget-block">',
'after_widget' => '</aside>',
'before_title' => '<h2 class="widget-ttl">',
'after_title' => '</h2>',
));
register_sidebar( array(
'name' => '広告無サイドバーコンテンツ',
'id' => 'sidebar-noads',
'description' => 'エラーページなどで使用するサイドバーです',
'before_widget' => '<aside class="widget-block">',
'after_widget' => '</aside>',
'before_title' => '<h2 class="widget-ttl">',
'after_title' => '</h2>',
));
尚、’id’で追加した文字列は、広告ナシの意味で「no-ads」としたかったが、「sidebar-no-ads」という表記だとうまく機能するかどうか分からなかったため「sidebar-noads」とした。書き換えが終わったら、保存したfunctions.phpをアップロードしてfunctions.phpを上書きする。
広告ナシのサイドバー作成
WordPressの管理画面から【外観】→【ウィジェット】とアクセスすると、元々あった《サイドバーコンテンツ》というウィジェットの下に、《広告無サイドバーコンテンツ》というウィジェットが追加されているだろう。もし無ければ、何かしら作業をミスってる。
追加された《広告無サイドバーコンテンツ》は、この時点では中身がカラなので、既存の《サイドバーコンテンツ》を参考に、広告を省いたサイドバーを作成する。
page-otoiawase.phpと404.phpの修正
《広告無サイドバーコンテンツ》が完成したら、先ほど修正したfunctions.phpと同一階層にある「page-otoiawase.php」、及び「404.php」を見つけてテキストエディタで開く。
この工程で参考になるサイト
開いた2つのファイルそれぞれで、下記の記述を見つける。
<?php get_sidebar(); ?>
見つけたら、下記に書き換える。というか「’noads’」を括弧内に追記する。
<?php get_sidebar('noads'); ?>
get_sidebar();に追加された「’noads’」というのは、先ほど「functions.php」で追加した《広告無サイドバーコンテンツ》部分の「’id’ => ‘sidebar-noads’,」における「-」より後の文字列の事。従って’id’を「’sidebar-hogehoge’」としているならば、書き換えは<?php get_sidebar(‘hogehoge’); ?>としなければならない。
変更を加えた2つのファイルを保存し、サーバにあるファイルをそれぞれのファイルで上書きしたらOK(もちろん、原本の方のバックアップは忘れずに)。お問い合わせページや404エラーページには、サイドバーの広告がもう表示されてないはずだ!
但しこのやり方では、テーマがアップデートされた時に追記・修正した箇所が元に戻る可能性が高く、お問い合わせページやエラーページに再度広告が表示される事になる。ご注意!
-
前の記事
記事がありません
-
次の記事
WordPressが出力するFeedのタイトルにカテゴリーごと、タグごとに違う定型文を追記する 2018.06.21