Intereting Posts
Тип сообщения о событиях запроса после текущей даты и часового пояса Случайный элемент в массиве get_post_meta Как я могу получить кого-то для проверки, как только они добавят продукт в корзину? Удаление ссылки '<a>' из '<li>' на meta_value в пользовательских feilds Добавление дополнительных страниц в плагин, которые не должны отображаться на боковой панели RSS-канал для пользовательского типа сообщений с настраиваемыми полями данных, не проверяющими Выпадающий список с контрольным списком Создание списка элементов медиабиблиотеки, классифицированных по определенному элементу таксономии Как добавить флажок с несколькими значениями в таблице? Не удается сохранить данные MetaBox в пользовательском типе сообщения BuddyPress: hook для добавления новых полей профиля и групп Страница архива типа сообщения не работает Изменения в header.php не отражают попытка вставить скрипт в wordpress Общий логин для двух разных приложений WordPress и bbpress

Показать сообщения в случайных типах сообщений

В настоящее время я работаю над проектом в WordPress.

Здесь я должен получить все сообщения из двух пользовательских типов сообщений, а именно pt1, pt2.

Но здесь я хочу отображать сообщения со случайным типом сообщения (pt1, pt2).

Пример)

Я хочу отобразить первое сообщение от pt1, рядом с pt2 и снова pt1 и next pt2 и так далее …

Как я могу это сделать. Любая помощь? Это код:

$args = array( 'posts_per_page' => 5, 'orderby' => 'post_date', 'order' => 'DESC', 'post_type' => array('pt1', 'pt2'), 'post_status' => 'publish' ); $posts = get_posts( $args ); $num=1; foreach($posts as $post) { if( $num % 2 == 0 ) echo $post->post_title.$post->post_type; else echo $post->post_title.$post->post_type; $num++; } 

Solutions Collecting From Web of "Показать сообщения в случайных типах сообщений"

Нет простого запроса, который сделает это (см. Ниже). Вам нужно будет обработать ваши результаты на PHP, чтобы получить сортировку, которую вы ищете. Что-то вроде этого:

 $args = array( 'posts_per_page' => 5, 'orderby' => 'post_date', 'order' => 'DESC', 'post_type' => array('post', 'book'), 'post_status' => 'publish' ); $posts = get_posts( $args ); $even = $odd = array(); $ei = 0; $oi = 1; foreach ($posts as $p) { if ('post' == $p->post_type) { $odd[$oi] = $p; $oi = $oi + 2; } elseif ('book' == $p->post_type) { $even[$ei] = $p; $ei = $ei + 2; } } $posts = $odd + $even; ksort($posts); foreach($posts as $post) { echo $post->post_title.$post->post_type; echo '<br>'; } 

Очевидно, что я использовал типы сообщений, которые существуют на моем dev-сервере, но замена этих элементов тривиальна. Идея такая же.

Единственный способ, которым я знаю, чтобы убедиться, что вы получите равное количество каждого типа сообщения в запросе, было бы создать UNION . У меня нет времени написать, что сейчас, но вариант 4 из этого ответа должен начать вас.