###実現したいこと
WordPressのループでリストがいくつか出力されるとき
➀指定のリストを「ランダム番目」に挿入したい。
➁他のリストを「ランダム番目以外」にループ順に置きたい。
➂リストのクラス名と位置を合わせたい。
と考えています。
###例
たとえば後述する「試したソースコード」では'posts_per_page' => 3
として3つのリストが出力されます。そして、$pos = $hash[$key];
として$pos
には1か3が入るわけですが、
もし$pos
が1ならこう出力↓して、
もし$pos
が3ならこう出力↓する。
という風に、
➀<li>special<li>
のリストを「$pos
番目」に挿入したい。
➁他のリストを「$pos
番目以外」にループ順に置きたい。
➂リストのクラス名と位置を合わせたい。
と考えています。
###試したソースコード
そのために考えたのがこちらですが、どのような修正が必要になりますでしょうか?
php
1<?php 2// リスト数 3$args1 = array( 4'posts_per_page' => 3, 5); 6?> 7 8<?php 9// ランダム生成 10$hash = array('1', '3'); 11$key = array_rand($hash); 12$pos = $hash[$key]; 13// リスト位置 14$cnt = 0; 15$num = 0; 16?> 17 18<?php if ( have_posts() ) : ?> 19 20 <?php while ( have_posts() ) : the_post(); ?> 21 22 <li class="no-<?= $num++; ?>"> 23 <?php the_title(); ?> 24 </li> 25 26 <?php if ($cnt++ === $pos) : // ランダムな位置にspesialを挿入 ?> 27 <li class="no-<?= $num++; ?>"> 28 special 29 </li> 30 <?php endif; ?> 31 32 <?php endwhile; ?> 33 34<?php endif; ?>
尚、ランダムな位置は「指定数列($hash = array('1', '3');
)」のどれかで、この数列に奇数だとかのルールはなく、いろいろ考えられます。
アドバイス宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー