TAGWordPress
記事の最初の見出しの前にコンテンツを追加する方法:WordPress
WordPressの記事の最初の見出しの前にコンテンツを追加する方法をご紹介します。
CTAコンテンツや、アドセンスを挿入したい場合に便利です。
functions.phpに追加する
以下のソースをfunctions.php内に追加します。
register_sidebars(1, array( 'name'=>'CTAボタン', 'id' => 'widget-in-article', 'description' => '投稿本文中に表示されるウイジェット。', 'before_widget' => '<div id="%1$s" class="widget-in-article %2$s">', 'after_widget' => '</div>', 'before_title' => '<div class="widget-in-article-title">', 'after_title' => '</div>', )); /////////////////////////////////////// //H2見出しを判別する正規表現を定数にする /////////////////////////////////////// define('H2_REG', '/<h2.*?>/i');//H2見出しのパターン /////////////////////////////////////// //本文中にH2見出しが最初に含まれている箇所を返す(含まれない場合はnullを返す) //H3-H6しか使っていない場合は、h2部分を変更してください /////////////////////////////////////// function get_h2_included_in_body( $the_content ){ if ( preg_match( H2_REG, $the_content, $h2results )) {//H2見出しが本文中にあるかどうか return $h2results[0]; } } /////////////////////////////////////// // 投稿本文中の最初のH2見出し手前にウィジェットを追加する処理 /////////////////////////////////////// function add_widget_before_1st_h2($the_content) { if ( is_single() && //投稿ページのとき、固定ページも表示する場合はis_singular()にする is_active_sidebar( 'widget-in-article' ) //ウィジェットが設定されているとき ) { //広告(AdSense)タグを記入 ob_start();//バッファリング dynamic_sidebar( 'widget-in-article' );//本文中ウィジェットの表示 $ad_template = ob_get_clean(); $h2result = get_h2_included_in_body( $the_content );//本文にH2タグが含まれていれば取得 if ( $h2result ) {//H2見出しが本文中にある場合のみ //最初のH2の手前に広告を挿入(最初のH2を置換) $count = 1; $the_content = preg_replace(H2_REG, $ad_template.$h2result, $the_content, 1); } } return $the_content; } add_filter('the_content','add_widget_before_1st_h2');
上記の「CTAボタン」の箇所はウィジェット名になりますので自由に設定可能です。
define('H2_REG', '/<h2.*?>/i');//H2見出しのパターン
今回は最初のh2の見出し前の前提ですが、h3見出しの前に表示したい場合は上記の箇所をh3に変更する事で対応可能です。
あとは
ウィジェットに「CTAボタン」というウィジェットが追加されていますので、
そのウィジェット内に追加したいコンテンツを記述することで見出しの前に表示されるようになります。
WordPressのおすすめ参考書
bookfan 1号店 楽天市場店
¥3,300 (2024/11/27 16:53時点 | 楽天市場調べ)
ポチップ
ポチップ