【WordPress】アーカイブページのループ内に、アドセンス広告などを自動で挿入
WordPressでサイトを作成していると、アーカイブページ(記事一覧)のループ内に、広告など投稿記事以外のコンテンツを挿入したい場合があるかもしれません。
今回は、そのような場合に使用できるソースコードの例となります。
アーカイブページのループ内に、アドセンスの広告を自動で挿入する例
例では、whileループを使いアーカイブページで投稿一覧を表示する際、ループ回数が3の倍数の場合に、投稿記事の代わりとしてAdSense(アドセンス)の広告を自動で挿入します。
以下がソースコードの例となり、index.phpファイルなど、アーカイブページの投稿一覧を出力させる箇所に記述します。
<?php
// ループ回数を判断する変数を定義
$i = 1;
if ( have_posts() ){
while ( have_posts() ){
// ループ回数により広告を挿入
if( $i%3 == 0 ) {
?>
<!--ここに、アドセンスの広告を表示するソースコードを記述-->
<?php
}else{
// 投稿の挿入
the_post();
get_template_part( 'template-parts/post/content' );
}
$i++;
}
}else{
get_template_part( 'template-parts/post/content', 'none' );
}
?>
ソースコードの説明
以下は、ソースコードのポイントとなる箇所の説明となります。
ループ回数を判断する変数を定義
まず、ソースコード2行目で、ループ回数を判断する際に使用する変数$iを定義します。
++(インクリメント演算子)で、ループが一周する毎に変数$iの値を1増加
そして、ソースコード16行目の++(インクリメント演算子)で、ループが一周する毎に変数$iの値を1増加させ、変数$iの値をループ回数と同じにします。
変数$iの値によりアドセンスの広告を挿入
ソースコード5行目からは、while ( have_posts() )を使い投稿一覧を取得しますが、その中で、if文を使用しループ回数を判断し、条件によりアドセンスの広告を挿入します。
例では、if文の条件式を$i%3 == 0として、ループ回数が3の倍数でアドセンスの広告を表示し、それ以外のループ回数では投稿を表示します。
今回の例では、投稿一覧のループ回数が3の倍数の場合にアドセンスの広告を挿入しましたが、if文の条件式や挿入するコンテンツを変更することで、条件式に指定したループ回数の際に、投稿記事とは異なる任意のコンテンツを挿入することが出来ます。