Intereting Posts
Включить только одну категорию, но исключить, если она находится в категории из цикла создание запроса search.php Как проверить каталог, в котором установлен WordPress? Как обновить изображение продукта на основе входов Gravity Forms Включить CORS для отправки метода POST с помощью React Правило перенаправления WP не работает Метки регистрационной формы – добавить звездочку Кодирование заголовка виджетов WordPress Почему не работает add_image_size ('event-secondary-image-thumbnail', 250, 150)? Запрос сообщений с нескольких сайтов в сети? Ограничение количества страниц, которые пользователи могут создавать в пользовательских типах сообщений Удаление ассоциированных медиа на странице / Удаление сообщения Должно помещать пользовательский код в functions.php или создавать плагины Как вы можете настроить на нескольких языках? Различные пользовательские заголовки на разных страницах

Случайный сценарий изображения работает, но хочет избежать дубликатов

Для отображения случайных изображений используется следующее:

<?php $new_query = new WP_Query('&showposts=24'); ?> <?php while ($new_query->have_posts()) : $new_query->the_post(); ?> <?php $args = array ( 'post_type' => 'attachment', 'numberposts' => 1, 'orderby' => rand, 'status' => 'publish', 'post_mime_type' => 'image', 'parent' => $post->ID ); ?> <?php $attachments = get_posts($args); if ($attachments) { foreach ($attachments as $attachment) { echo '<li>'; echo wp_get_attachment_link($attachment->ID, 'thumbnail', true, ''); echo '</li>'; } }; endwhile; 

Но я стараюсь избегать дубликатов. Есть идеи?

Благодаря!

Solutions Collecting From Web of "Случайный сценарий изображения работает, но хочет избежать дубликатов"

Один из способов сделать это – использовать post__not_in потому что вы используете 'orderby' => rand, post__not_in

Вам нужно будет отбросить идентификатор сообщения или вложения (я полагаю, вы также можете использовать что-то еще) в массив и создать массив в первом цикле и использовать этот массив в качестве второго параметра запроса, в основном вы делаете 2 цикла.

Мне не нужно проверять фактический код, но логика будет идти по строкам;

  $remove_duplicates = array(); //create an array to hold post id's (or whatever you use) $new_query = new WP_Query('&showposts=24&orderby=rand'); //add your other queries params here while ($new_query->have_posts()) : $new_query->the_post(); // start first loop $remove_duplicates[] = $post->ID ?> // throw duplicate post Id's into an array endwhile; // end first loop // start second loop for your output using the array $args=array( 'numberposts' => 1, 'orderby' => rand, 'status' => 'publish', 'post_mime_type' => 'image', 'parent' => $post->ID 'post__not_in'=> $remove_duplicates ); // this is the important part to remove the duplicates. // rest of your output. 

К сожалению, я не смог проверить это, если это не сработает, другим вариантом будет просто использовать собственную PHP-функцию, например array_unique чтобы удалить дубликаты в массиве перед выходом.