我怎样才能让这些项目每次以随机顺序出现?
<?php
for($i = 1; $i <= 5; $i++) {
$nameN = "name{$i}";
$$nameN = get_post_meta(get_the_ID(), "ch_client_name{$i}", TRUE);
// or $name[$i], if you can
?>
<li data-id="<?php the_ID(); ?>" class="<?php echo $clientterms; ?> portfolio-item" data-type="<?php echo $clientterms; ?>">
<?php echo $$nameN; ?>
</li>
<?php
} ?>
答案 0 :(得分:1)
<?php
$numbers = array(1,2,3,4,5);
for ($i = 1; $i <= 5; $i++) {
$r = rand(0, count($numbers) - 1);
$nth = $numbers[$r];
unset ($numbers[$r]);
array_unshift ($numbers, array_shift ($numbers));
//Other part of the code
应该有效。它基本上选择一个随机的未显示项,并从数组中删除它。 $nth
会存储真实项目的数量。
答案 1 :(得分:0)
为什么要将每个客户端添加到不同的元值?您可以将所有客户端添加到一个元值 - ch_client_name - 它将是数组。这将简化您的结构。
如果你改变你的结构,我建议首先将元数值作为数组,然后使用shuffle并遍历数组。
$clientNames = get_post_meta(get_the_ID(), "ch_client_name");
shuffle($clientNames);
foreach ($clientNames as $clientName){....