【Twentyseventeenのちょこっとカスタマイズ】子テーマでAdsenseを好きな場所に貼り付けよう


こんにちは、みみです。

すっかり忘れていましたが、Google Adsenseの公式プラグインが今月でサポートを終了するのでした。今度やろうやろうと思いつつ、気がつけばGWになってしまいました。

基本的な移行の方法は公式を参照してください。公式ではQuickStartとやらを使う方法とカスタム AdSense 広告を使う方法が書かれています。

ここでは後者の、広告ユニットのソースを取得して貼り付ける方法を使います。サイドバーやフッター内ならWidgetsで簡単に貼り付けられますが、記事の直後とかだとテーマファイルを弄る必要があります。

他のプラグインを使う手もありますがせっかくなので子テーマを弄って好きな場所に広告を貼り付ける方法をご紹介しようと思います。(これは特にTwentyseventeenでないと出来ないことでは無いのですが、Twentyseventeenを使っている前提で書いています。)

といっても、要するに張りたい場所を探して、Adsenseのソースを貼り付けるだけなのですが、管理しやすいようにテンプレートパーツの機能を使って作りましょう。

先ず子テーマに

子テーマのディレクトリ/template-parts/adsense/

という感じでAdsense用のディレクトリを作ります。其の中に

for-single.php

というような名前のファイルを作って、Adsenseのソースを貼り付けて保存します。あとは好きな場所に読み込むだけです。

例えば、個別ページならsingle.phpを子テーマフォルダにコピーしてきて、

			<?php
/* Start the Loop */
while ( have_posts() ) : the_post();

get_template_part( 'template-parts/post/content', get_post_format() );
//adsense
get_template_part( 'template-parts/adsense/for-single', get_post_format() );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;

the_post_navigation( array(
'prev_text' => '<span class="screen-reader-text">' . __( 'Previous Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Previous', 'twentyseventeen' ) . '</span> <span class="nav-title"><span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '</span>%title</span>',
'next_text' => '<span class="screen-reader-text">' . __( 'Next Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Next', 'twentyseventeen' ) . '</span> <span class="nav-title">%title<span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ) . '</span></span>',
) );

endwhile; // End of the loop.
?>

こんな感じで読み込ませると、個別ページのコメントの上に表示されるようになります。

プラス解説

前も紹介したことのあるget_template_part関数を使って、

get_template_part( 'template-parts/adsense/for-single', get_post_format() );

の部分で読み込ませています。

こんな感じで広告ユニット毎にテンプレートパーツを分けて管理すると分かりやすくてオススメです。テンプレート名を広告ユニット名とを呼応させておくとより良いと思います。

私自身が、あんまりあちこちに広告があるサイトが好きでは無いので二箇所に留めていますが、最近良くある記事の途中に広告が入るようにするのはthe_contentsの中身を弄るのでちょっと複雑です。また、別記事に書いてみたいと思います。


この記事を書いた人