Simplicityで使える最後のH2タグ直前にウィジェットエリアを追加する方法

Google Adsenseを4つ以上貼り付けてもよくなったので、先日、アドセンス広告の位置を見直すことにしました

何処にしたものかと他の方らのブログを読んでみると、最後のH2タグの手前を薦めてる人たちが多かったんですよね

しかし、僕が使っているブログテーマ、Simplicityにはその位置に追加出来るようなウィジェットエリアは存在しません

探してみるとfunctions.phpに追記することでその位置に追記することが出来るようだけども、それより新しくウィジェットエリアを追加した方が、使い勝手が良く便利そうに思えたので、追加できる新しいコードを作成してみました

作成したといっても、他の方たちのコードを参考にちょこっと修正しただけですが

せっかくなので、ある程度需要があるかもしれないので方法をシェアしておきます

参考

Simplicityに投稿の2つめのH2の上にウィジェットエリアを追加する方法 | ゆうそうとITブログ

WordPress記事内の最初と最後のhタグ直前にアドセンスを貼る方法

以上の記事を参考にさせていただきました、ありがとうございます

スポンサーリンク

最後のH2タグ直前にウィジェットエリアを追加する方法

まずはSimplicityテーマフォルダ内にあるfunctions.phpを用意します

僕は親テーマと子テーマ両方使ってるますが、子テーマの方にfunctions.phpが入ってました

万一、手順を間違えて壊した時に備えて、functions.phpはバックアップを取っておいて下さい

これに以下のコードを追記します

/* ウィジェットエリア追加 */
if (function_exists(‘register_sidebar’)){
register_sidebar(array(
‘name’ => ‘投稿本文中の下(最後のH2の上)’,
‘id’ => ‘widget-in-article2’,
‘description’ => ‘投稿本文中に表示されるウイジェット。文中最後のH2タグの手前に表示されます。広告が表示されている場合は、広告の下に表示されます。設定しないと表示されません。’,
‘before_widget’ => ‘<div id=”%1$s” class=”widget-in-article2 %2$s”>’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<div class=”widget-in-article2-title main-widget-label”>’,
‘after_title’ => ‘</div>’
));
}

/////////////////////////////////////
// 最後のh2見出し手前にアドセンスを表示
/////////////////////////////////////
if ( !function_exists( ‘add_widget_before_2nd_h2’ ) ):
function add_widget_before_2nd_h2($the_content) {
if ( is_amp() ) {
return $the_content;
}
if ( is_single() && //投稿ページのとき、固定ページも表示する場合はis_singular()にする
is_active_sidebar( ‘widget-in-article2’ ) //ウィジェットが設定されているとき
) {
// 投稿本文中の下タグを記入
ob_start();//バッファリング
echo ‘<div id=”widget-in-article2″ class=”widgets”>’;
dynamic_sidebar( ‘widget-in-article2’ );// 投稿本文中の下ウィジェットエリアの表示
echo ‘</div>’;
$ad_template = ob_get_clean();
$h2 = ‘/^<h2.*?>.+?<\/h2>$/im’;//H2見出しのパターン
if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか
if ( $h2s[0] ) {//チェックは不要と思うけど一応
if ( $h2s[0][1] ) {//H2が2個以上なら最後のH2見出し手前にad2を挿入
$the_content  = str_replace($h2s[0][count($h2s[0]) – 1], $ad_template.$h2s[0][count($h2s[0]) – 1], $the_content);
}
}
}
}
return $the_content;
}
endif;
add_filter(‘the_content’,’add_widget_before_2nd_h2′);

ちなみに、新しいテキストドキュメントを作成してfunctions.phpをドラッグ・アンド・ドロップしてやれば編集出来ます

追記したら元の位置にfunctions.phpを戻します(上書きします)

これだけで完了です、簡単でしょ

そうすると外観→ウィジェットに上の画像のような「投稿本文中の下(最後のH2の上)」という新しいウィジェットエリアが追加されているはずです

あとはここにAmazonアソシエイトなり、Google Adsenseなり好きなものを設定して下さい

なお、H2タグが一つしかないときは、このウィジェットは表示されません

このウィジェットを使う人は既に「最初のH2見出し手前」の位置は使っていて、更に追加したい人でしょうから問題ないでしょう、たぶん

当記事がどなたかの役に経てば幸いです

コメント

タイトルとURLをコピーしました