お世話になっております。
以下のようなコードを子テーマのfunctions.phpに追加すると、記事中広告の挿入位置を変えられるかと思います。
// 記事中広告:テーマ本体の読み込みを解除
add_action( 'after_setup_theme', function() {
remove_filter('the_content', 'ads_before_headline');
});
// 記事中広告:新しく定義
add_filter('the_content', 'my_ads_before_headline');
function my_ads_before_headline($the_content) {
global $post;
if (!is_single()) return $the_content;
if (!is_active_sidebar('ads_in_contents')) return $the_content;
if (get_post_meta($post->ID, 'disable_ads', true)) return $the_content;
if (!defined('H2REGEX')) define('H2REGEX', '/^<h2.*?>.*?<\/h2>$/im');
// ウィジェットを$adに格納
ob_start();
dynamic_sidebar('ads_in_contents');
$ad = ob_get_contents();
ob_end_clean();
preg_match_all(H2REGEX, $the_content, $matches);
if ( isset($matches[0])) {
// 2番目のh2前に表示
if(isset($matches[0][1])) {
$the_content = str_replace($matches[0][1], $ad.$matches[0][1], $the_content);
}
// 3番目のh2前に表示
if(isset($matches[0][2])) {
$the_content = str_replace($matches[0][2], $ad.$matches[0][2], $the_content);
}
// 4番目のh2前に表示
if(isset($matches[0][3])) {
$the_content = str_replace($matches[0][3], $ad.$matches[0][3], $the_content);
}
}
return $the_content;
}
この例では、2、3、4番目のh2見出しの前に広告が挿入されるようになっているかと思います。
よろしくお願いします。
迅速なご回答ありがとうございます。
反映できました。大変助かりました!
ありがとうございました。
WordPressテーマSANGOの質問
記事中広告を特定のh2タグ前に表示したい
いつもお世話になっております。
「記事中広告」について質問させてください。
ウィジェットの「記事中広告」では、デフォルトで” 1番最初のh2見出し前 “に表示されるようになっていますが、1番目には挿入せず2番目以降のh2見出し前に表示するよう、PHPファイル修正などで指定はできるでしょうか。
(例:2~4番目のh2見出し前に表示)
他サイトのカスタマイズ記事等も拝見したのですが、1番目を表示させない方法は載っておらず、サルワカさまへお尋ねしたいと思った次第です。
お忙しいなか恐れ入りますが、ご教示のほどお願いいたします。