【ha-Basic】投稿・固定ページ本文のH2タグ前に定型文(広告など)を挿入できるようにしました

公開日: 更新日: Ver1.0の更新情報

どーも、コピペプログラマー?のひまあーとです。

何かをテーマ内で追加するのはこの辺までにしよーと思いつつ、また追加してしまいました(笑)。

でもやっぱり有用な機能は追加したい・・で今回はH2タグの直前に定型文や広告を挿入する機能です。

といっても冒頭に書いた通りコピペプログラマーですから、勝手に師と仰ぐ「Simplicity2」テーマ作者さんのブログからの引用です。

単純にコピペしただけじゃないですよ(笑)。ちゃんと【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タグの前に何かを挿入するものですから、本文の内容によっては広告と広告の間が近くなりすぎて警告を受けることもあるかもしれませんので、自身で書く記事の内容量を把握して過度に広告が挿入されないように注意してください。

いつでもご相談・お見積りの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】








コメントは受け付けていません。