Intereting Posts
Каков правильный крючок для использования в WooCommerce для обработки позиции цены продажи? Добавить функцию в Simple Twitter Connect to not Tweet pages Наследовать скрипты от родительской до детской Установите активное меню навигации из плагина Применение jquery к администратору WordPress edit.php API настроек – добавление полей настроек динамически? Ссылка на идентификатор сообщений отображается вместо slug Я разбив на страницы не работает таксономии по алфавиту Изменить мета-окно при изменении шаблона страницы. Получить сообщения, которые нравятся моим следующим пользователям Как однозначно идентифицировать запросы? Как использовать настраиваемые шаблоны страниц в теме, которая скрывает параметр шаблона страницы? Что делать с непривязанными логотипами и заголовком, загружаемыми через собственный загрузчик wordpress? Flowplayer – Предупреждение: деление на ноль Показывать название категории продуктов в таблице просмотра заказов на WooCommerce

Удалить из массива в контуре WP_Query

У меня есть несколько страниц с тегом «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(); ?> 

Solutions Collecting From Web of "Удалить из массива в контуре WP_Query"

Это происходит потому, что вы повторно инициализируете массив фраз на каждой итерации. Определите этот массив вне цикла, и этот код будет работать.

 <?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(); ?> в <?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(); ?> не <?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(); ?> 

Надеюсь, что это решение работает для вас.

Редактировать:

Смотрите здесь работу.