アドセンス広告を見出しH2の1,2,3番目にそれぞれ挿入する方法

広告を本文見出しH2の手前にそれぞれ配置してくれる寝ログ様の記事からのコードを

活用させていただいた。

そのコードがコレ。

1,2,3番目のH2タグの前にそれぞれ別の広告タグを挿入してくれます。

ただ単に貼り付けて活用するのも良いが、

コードを元にPHPの理解を深めていくのもいいかも。

ということで、少しづつやっていきたいと思います。

間違いがございましたら、よろしくご教授の程お願いします。

スポンサーリンク



関数の定義

1行目は、functionの構文。

function 関数名(引数){ 処理の内容 }

で表されます。

ですから、

関数名

add_ad_before_h2_for_3times

引数

$the_content

の関数です。

ということになります。

スポンサーリンク



$the_contentとは

いきなり $the_content が出てきますが

これは

$the_content = 記事本文

を意味します。

改行されても大丈夫 ヒアドキュメント

2行目から、広告コードの貼り付け部分。

EOFが目につきますが、実は大切なのは

「 <<< 」 の部分。

これは「ヒアドキュメント」の合図。

「その次に書かれた文字がもう一度出現するまでのすべて」が反映されます。

なので、

変数名=<<< EOF

EOF;

EOFからEOFまでが改行されていても変数に代入される。

という仕組みです。

慣例で、EOFやEODが使われる。

と認識しておけば良いようです。

ちなみに

EOFは、end of file の略です。

スポンサーリンク



投稿ページに反映させる is_single()

次は

is_single というのが出てきました。

これは、条件分岐タグ。

is_single() で、

個別投稿のページが表示されている場合

となります。

if文ですので、

個別投稿ページの場合だけ以下を実行する。

となります。

投稿ページ中のh2見出しをパターン化

わけが分からなさそうなのが出てきました。

まず、

$h2=’  ’ 

$h2は文字列と認識されます。

次に、

$h2=’/  /

で、変数の中身は「正規表現のパターンですよ」となります。

そのパターンとは

^ → 行の初めに

<h2>があって

.+? → 文字列が続いており

</h2>がある。

$ → 行の終わり。

i → 大文字でも小文字でも構わない。

m → 改行されていても構わない。

というパターンです。

\/で、メタ文字である / を文字として認識させています。

.*?は、

.が任意の1文字

*?が前の文字が0個以上かつ最小回数マッチする。

だから

任意の文字が0個以上かつ最小回数マッチしている。

となる。

なので結局は

$h2 = h2見出し

ということに。

見出しだけを全て抜き出す preg_match_all

新しい命令が出てきました。
preg_match_all

その構文は

preg_match_all(パターンの文字列,検索対象の文字列,結果を収納する配列関数)

です。

ここでは

$h2がパターンの文字列

$the_content が検索対象文字列

$h2sに結果が収納される配列

ということに。

H2見出しが本文中にあれば、配列に見出し内容を収納する

ということですね。

記事本文の中にH2見出しがあれば順次、h2sに全て収納する。

という動作になります。

このとき、$h2sは2次元配列になっていることに注意。

0行目に0列から順に文字列が格納されていきます。

(ちなみに1行目以下は、サブパターンがマッチしたときに格納される)

続きは次回にしたいと思います。

上記のコードがプラグインになっていたら便利かもしれません。

function.php への追加もリスクがあります。

そこで・・・

3種類の広告をそれぞれ
記事の先頭から3つのH2見出しの上に掲載するコードをプラグインにしてみました。

ダウンロードはこちら

↓ ↓ ↓ ↓

put each ad on each headline

<注意>くれぐれも、ご利用は自己責任でお願いいたします。

スポンサーリンク

スポンサーリンク


  • このエントリーをはてなブックマークに追加
       

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です