WordPress 新着記事・人気記事一覧ループのn番目にランダム広告
2018年4月21日
WordPressで作成してるサイトでサイドバーのウィジェットでよくある 新着記事一覧、うちの場合は「最近の新着・更新記事」などの一覧ループのn番目にランダム広告を挿入する方法。「人気の記事とページ」にもローテーションバナーを挿入。
WP_Queryのwhile文にカウントを加えるだけ
<ul>
<?php
$number = 4; // n番目の数字(4番目なら4)
get_the_ID();
$args = array(
'orderby' => 'modified',
'order' => 'DESC',
'posts_per_page' => 6
);
$my_query = new WP_Query( $args );
while ( $my_query->have_posts() ) : $my_query->the_post();
$rankcount++; ?>
<?php if ($rankcount == $number ): ?>
<li>
ここに挿入したい処理
</li>
<?php endif; ?>
<li>
<a href="<?php the_permalink(); ?>">
<?php if( has_post_thumbnail() ): ?>
<?php the_post_thumbnail('thumb100'); ?>
<?php endif; ?>
<div>
<p><?php the_title(); ?></p>
</div>
</a>
</li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
</ul>
上は勝手にありがちだと思ってる WP_Queryサブループから取得した新着更新記事一覧ループ。上の場合更新された順に6記事のサムネイルとタイトルを取得して、<li>要素にいれてループして一覧にしてる感じ。
3行目、$number にn番目を指定して入れとく。別にここで指定して入れておかなくてもいいんだけどね。
11行目から始まる while 新着更新記事一覧ループ に、whileの中一番最初12行目に1周毎に1増える $rankcount++ を今何番目の記事を表示するループか知るためにセットしておく。この辺りがミソかもしれない。
13行目 if ($rankcount == $number ) 、$numberで指定したn番目(ここでは4番目)という条件で分岐、$rankcount が4だったらという条件ということ。ここに3行目で指定してる$numberのかわりに直に4と入力すれば3行目は当然いらない。
14行目から16行目、一覧リストだから<li>要素の中に表示したい処理を書く。ループで表示される<li>の上でn番目指定した挿入する<li>の表示処理をしているので、n番目指定した<li>の上に挿入したい<li>が一覧に挿入される。
ここでは4番目と指定してるので4番目の新着記事の上、3番目の新着記事の下の位置に挿入する<li>がリスト内に表示される。6記事表示の新着記事リストの3番目と4番目の記事の間に広告が表示されるということ。
ちなみに13行目から17行目の部分を切り取って、28行目 <?php endwhile; ?> の前、27行目との間に貼り付けるとn番目の新着記事の下に広告が表示されるということになる。ここでは4番目の記事と5番目の記事の間に表示される。
実際の最近の新着・更新記事一覧ウィジェットn番目ランダムバナー広告挿入機能付きと全記事からの人気記事ランキングウィジェットn番目ランダムバナー広告挿入機能付きのPHPコードや作成方法は、長くなりそうなので改めて他の備忘録で。
追記 2018.04.30
「最近の新着・更新記事一覧ウィジェットn番目ランダムバナー広告挿入機能付き」のウィジェットの作成方法、PHPコードについては下のページでまとめている。
WPカスタマイズローテーションバナー,新着記事一覧,ウィジェット,widget,functions.php,人気記事一覧,WP_Query,ランダムバナー
Posted by あれこれ堂
関連記事
WordPress カテゴリー別ランダムバナー広告ウィジェットの作り方
個別投稿に属するカテゴリーに関連した広告をサイドバーにアクセスがある度に(ロード ...
WordPress カスタムフィールド値指定ランダムバナーウィジェットの作り方
投稿ページ・個別ページにカスタムフィールド値を利用してランダムバナー広告リストフ ...
WordPress ショートコードひとつでランダムバナー広告管理 広告表示
WordPressショートコードひとつでウィジェットや本文中、新着記事・更新記事 ...
プラグインなしで人気記事一覧ウィジェット化-カテゴリー別人気記事ランキングウィジェット
プラグインなしで人気記事一覧ウィジェット化 個別投稿ページに属するカテゴリーの人 ...
プラグインなしで人気記事一覧ウィジェット化-全記事からの人気記事ランキングウィジェット
プラグインなしで人気記事一覧ウィジェット化 サイドバーに表示する全記事からの人気 ...