【ha-Basic】投稿・固定ページ本文のH2タグ前に定型文(広告など)を挿入できるようにしました
- 公開日:2019年5月17日
カテゴリー:制作備忘録

どーも、コピペプログラマー?のひまあーとです。
何かをテーマ内で追加するのはこの辺までにしよーと思いつつ、また追加してしまいました(笑)。
でもやっぱり有用な機能は追加したい・・で今回はH2タグの直前に定型文や広告を挿入する機能です。
といっても冒頭に書いた通りコピペプログラマーですから、勝手に師と仰ぐ「Simplicity2」テーマ作者さんのブログからの引用です。
本文記事1、2、3番目のH2見出し手前にアドセンスを挿入するWordPressカスタマイズ方法
単純にコピペしただけじゃないですよ(笑)。ちゃんと【ha-Basic】テーマで動作するように調整はきちんとしていますから。
それでは今回の変更について備忘録も兼ねて紹介しておきますね。
投稿や固定ページの本文内H2タグに定型コンテンツを挿入する機能
既に【ha-Basic】を使用している方向けになります(2019年5月17日現在一件もダウンロードがないので皆さん最新だと思います)。
変更したテーマファイル、追加したテーマファイル
変更したのは「functions.php」、追加したのは「a-before-h2ad.php」です。
上の参考記事ではfunctions.phpへ直接書くためのコードが紹介されていますが、設定する定型文や広告などのコードを書き入れなければならないこと、functions.phpが長くなってしまうことから別ファイルにしてそれをfunctions.phpで読み込むという形にしました。
functions.phpへ追加したのは「a-before-h2ad.php」を読み込みなさいよ!という記述だけ
//h2タグ前コンテンツ
include 'a-before-h2ad.php';// h2タグ(1~3番目)の前に何かを挿入する
コメント含めたった2行です。これだけで外部のファイルをfunctions.php内に書いたのと同じ働きにすることができます。
「a-before-h2ad.php」の内容は以下の通り
<?php
function add_ad_before_h2_for_3times($the_content) {
//1つ目の広告タグを挿入
$ad1 = <<< EOF
<?php //この行の下に広告コードなどを挿入?>
EOF;
//2つ目の広告タグを挿入
$ad2 = <<< EOF
<?php //この行の下に広告コードなどを挿入?>
EOF;
//3つ目の広告タグを挿入
$ad3 = <<< EOF
<?php //この行の下に広告コードなどを挿入?>
EOF;
if ( is_single() || is_page() ) {//投稿ページ
$h2 = '/^<h2.*?>.+?<\/h2>$/im';//H2見出しのパターン
if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか
if ( $h2s[0] ) {//チェックは不要と思うけど一応
if ( $h2s[0][0] ) {//1番目のH2見出し手前に広告を挿入
$the_content = str_replace($h2s[0][0], $ad1.$h2s[0][0], $the_content);
}
if ( $h2s[0][1] ) {//2番目のH2見出し手前に広告を挿入
$the_content = str_replace($h2s[0][1], $ad2.$h2s[0][1], $the_content);
}
if ( $h2s[0][2] ) {//3番目のH2見出し手前に広告を挿入
$the_content = str_replace($h2s[0][2], $ad3.$h2s[0][2], $the_content);
}
}
}
}
return $the_content;
}
add_filter('the_content','add_ad_before_h2_for_3times');
?>
ほぼそのまんまです(笑)。
紹介されているコードと違うのは、別ファイルなのできちんとphpの接頭辞と閉じ子は入れてあげること。それに伴って中間のコメントがそのまま表示されてしまうのできちんとコメントアウトしてあげたこと、そして、投稿だけでなく固定ページ(is_page())を追加したことです。
定形コンテンツの設定方法
テーマ編集から「a-before-h2ad.php」を開きます
冒頭部分にある
<?php
function add_ad_before_h2_for_3times($the_content) {
//1つ目の広告タグを挿入
$ad1 = <<< EOF
<?php //この行の下に広告コードなどを挿入?>
EOF;
//2つ目の広告タグを挿入
$ad2 = <<< EOF
<?php //この行の下に広告コードなどを挿入?>
EOF;
//3つ目の広告タグを挿入
$ad3 = <<< EOF
<?php //この行の下に広告コードなどを挿入?>
EOF;
の中にある
<?php //この行の下に広告コードなどを挿入?>
EOF;
の空白の中に定型文や広告コードを入れます。
3か所ありますが、上から1つ目のH2タグ前、2つ目のH2タグ前、3つ目のH2タグ前に挿入されるコンテンツになります。
自動的に幅が調整される広告を除き、divタグなどで囲んで位置の調整をCSSでする必要がある場合があります
文章などを入れる場合にはきちんとpタグなどを入れてhtmlとして出力される形にしないとうまく表示されません(特にWorpdressの場合pタグやspanタグなどを省いてもきちんと整形されるので、うっかり忘れることが多いです)
この機能が必要ないときは
上の定型文の設定部分に何も記入しなければ、見た目は何も表示されませんが、表示されないだけで、H2タグがあるのかないのか?定型文はあるか?という判断が発生しますから、特に機能が必要ない!という方はそもそも動作させないようにしても構いません。
やり方は簡単で、テーマ編集から「functions.php」を開き、25行目付近にある
//h2タグ前コンテンツ
include 'a-before-h2ad.php';// h2タグ(1~3番目)の前に何かを挿入する
の2行を削除するだけです。
※これで読み込まれなくなりますので、「a-before-h2ad.php」というファイルを削除する必要はありません。
アドセンスの広告ユニットを挿入する場合の注意事項
アドセンスの広告ユニットには自身で設定する「ディスプレイ広告」や「テキスト広告」があります。これは旧来からある広告コンテンツで、規約によるとこれらの広告ユニットの上には「スポンサー広告」などの文字を表示することとなっていますので、アドセンスの規約に従って広告設置をするようにしてください。
また、今回の機能は単純にH2タグの前に何かを挿入するものですから、本文の内容によっては広告と広告の間が近くなりすぎて警告を受けることもあるかもしれませんので、自身で書く記事の内容量を把握して過度に広告が挿入されないように注意してください。
おまけ h2タグの前ではなくimgタグ(画像)の後ろに広告を表示する方法
このままだとほぼコピー記事のようになってしまうので、アドセンスの自動広告を有効化した後結構な頻度で表示される、本文へ挿入した画像の下へ任意の広告を表示する方法を紹介しておきます。
何かの説明をするようなタイプのサイトと違ってブログ(日記)を主としたサイトではh2タグを使う機会が少ないと思いますので、そうしたサイトではこちらのコードの方が有効かと思います。
変更はテーマ編集から「a-before-h2ad.php」のコードを以下へ変更するだけです
<?php
function add_ad_before_h2_for_3times($the_content) {
//1つ目の広告タグを挿入
$ad1 = <<< EOF
EOF;
//2つ目の広告タグを挿入
$ad2 = <<< EOF
<?php //この行の下に広告コードなどを挿入?>
EOF;
//3つ目の広告タグを挿入
$ad3 = <<< EOF
<?php //この行の下に広告コードなどを挿入?>
EOF;
if ( is_single() || is_page() ) {//投稿ページ
$h2 = '/<img.*?src\s*=\s*[\"|\'](.*?)[\"|\'].*?>/i';//画像タグのパターン
if ( preg_match_all( $h2, $the_content, $h2s )) {//画像タグが本文中にあるかどうか
if ( $h2s[0] ) {//チェックは不要と思うけど一応
if ( $h2s[0][0] ) {//1番目の画像タグのうしろに広告を挿入
$the_content = str_replace($h2s[0][0], $h2s[0][0].$ad1, $the_content);
}
if ( $h2s[0][1] ) {//2番目の画像タグのうしろに広告を挿入
$the_content = str_replace($h2s[0][1], $h2s[0][1].$ad2, $the_content);
}
if ( $h2s[0][2] ) {//3番目の画像タグのうしろに広告を挿入
$the_content = str_replace($h2s[0][2], $h2s[0][2].$ad3, $the_content);
}
}
}
}
return $the_content;
}
add_filter('the_content','add_ad_before_h2_for_3times');
?>



作者: Knowledge Base管理人
☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、このサイトでも使用している【HABONE】テーマの制作と配布を行っています。
年齢:50代 趣味/園芸・ペット・卓球