我有很多页,上面有一个“word”标签。
对于这些页面中的每一个,我希望在主页上链接到该页面的btn/Div。
此按钮将显示数组中的随机单词。
我希望每个按钮上的单词都不同,因此我在数组中随机选取了一个单词,然后删除了该单词。
我的问题是单词没有从数组中删除-如果我在每个循环中回显数组计数,它将保持不变。
如何从数组中随机选取一个单词,然后删除该单词。
<?php
$frontAgrs = array(
\'post_type\' => \'page\',
\'tag\' => \'word\',
\'order\' => \'ASC\'
);
$frontLoop = new WP_Query($frontAgrs);
if($frontLoop->have_posts()):
while($frontLoop->have_posts()):
$frontLoop->the_post();
/*----Phrase-------------*/
$phrases = [\'Hello Sailor\',\'Acid Test\',\'Bear Garden\',\'Botch A Job\',\'Dark Horse\',
\'In The Red\',\'Man Up\',\'Pan Out\',\'Quid Pro Quo\',\'Rub It In\',\'Turncoat\',
\'Yes Man\',\'All Wet\',\'Bag Lady\',\'Bean Feast\',\'Big Wig\'];
$rand_Num = array_rand($phrases);
$rand_phrase = $phrases[$rand_Num];
unset($phrases[$rand_phrase]);
echo count($phrases);
?>
<?php echo \'<div><a href="\'.get_permalink($post->ID).\'"><p>\'.$rand_phrase_value.\'</p></a></div>\' ?>
<?php endwhile; endif; ?>
<?php wp_reset_postdata(); ?>
SO网友:Rohit Pande
之所以会发生这种情况,是因为您正在每次迭代时重新初始化短语数组。在循环外定义该数组,这段代码就会起作用。
<?php
$frontAgrs = array(
\'post_type\' => \'page\',
\'tag\' => \'word\',
\'order\' => \'ASC\'
);
$frontLoop = new WP_Query($frontAgrs);
/*----Phrase-------------*/
$phrases = array(\'Hello Sailor\',\'Acid Test\',\'Bear Garden\',\'Botch A Job\',\'Dark Horse\',
\'In The Red\',\'Man Up\',\'Pan Out\',\'Quid Pro Quo\',\'Rub It In\',\'Turncoat\',
\'Yes Man\',\'All Wet\',\'Bag Lady\',\'Bean Feast\',\'Big Wig\');
if($frontLoop->have_posts()):
while($frontLoop->have_posts()):
$frontLoop->the_post();
$rand_Num = array_rand($phrases);
$rand_phrase = $phrases[$rand_Num];
unset($phrases[$rand_Num]);
echo count($phrases);
?>
<?php echo \'<div><a href="\'.get_permalink($post->ID).\'"><p>\'.$rand_phrase_value.\'</p></a></div>\' ?>
<?php endwhile; endif; ?>
<?php wp_reset_postdata(); ?>
希望此解决方案对您有效。
Edit:
查看工作
here.