Intereting Posts
инициировать электронную почту, когда публикация публикуется кем-то, за которым следует пользователь Получить предыдущую эскизную запись того же таксономического термина Заменить код в шаблоне плагина Переадресация нескольких доменов на WWW Как присвоить типу пользовательского типа сообщения как «уникальный» инкрементный номер? Многопользовательская установка с Nginx и субдоменами не работает Функция для отображения только первого экземпляра короткого кода Предварительное заполнение нового создания страницы с помощью коротких кодов Как я могу подключить и редактировать «на лету» загруженное изображение Как изменить глобальную переменную в функции и использовать ее в другой функции? Рабочий процесс: разработка на локальном ПК и нажатие на Remote Server vs. Что делает get_current_screen ()? Создать RSS-ленту всех сообщений Стиль wp_page_menu () элементов Я хочу создать PDF-файл и сохранить его в библиотеке?

Рандомизировать сообщения. Пропустить первое сообщение в порядке возрастания

Я хотел бы рандомизировать набор сообщений (пользовательский тип сообщения), но игнорировать первый пост все вместе.

Вот код, который, как я думал, будет работать:

$featured_content_query = new WP_Query( array( 'post_type' => 'feature', 'offset' => 1, 'posts_per_page' => 10, 'order' => 'ASC', 'orderby' => 'rand' ) ); 

Без orderby на сообщение, которое я хочу пропустить, игнорируется, но как только я добавляю случайный порядок, он добавляет его обратно в микс.

Кто-нибудь знает, что я делаю неправильно? Я чувствую, что мне не хватает чего-то действительно очевидного здесь.

Thnx!

Я считаю, что есть разные способы достижения этого. Самый простой способ, который я мог себе представить, – это:

 $featured_content_query = new WP_Query( array( 'post_type' => 'feature', 'offset' => 1, 'posts_per_page' => 10, 'order' => 'ASC' ) ); shuffle( $featured_content_query ); //PHP function to randomise posts array 

Затем вы можете продолжить использовать $featured_content_query как обычно!

Я искал еще один ответ и наткнулся на это, подумал, что смогу помочь.

Если вы хотите исключить самые последние сообщения, вы можете использовать wp_get_recent_posts () для извлечения идентификаторов (ID), а затем использовать 'post__not_in' => array(#,#) в WP_Query, чтобы исключить тех, кто возмущен сообщения.

Протестировал это немного и нашел, что это работает для того, чтобы исключить ОДИН пост. Я думаю, что вы могли бы анализировать результаты по-разному, чтобы получить больше, чем просто по идентификатору, если вы того пожелаете.

 $recent = wp_get_recent_posts(array('post_type'=>$type,'numberposts'=>'1')); $recentID[] = $recent[0]['ID']; // this creates an array of one $args = array( 'post_type' => $type ,'post_staus' => 'publish' ,'post__not_in' => $recentID // array()