Intereting Posts
Страница Sitemap из меню? Программно вставленные сообщения, не отображаемые в таблице сообщений Загрузка индексной страницы WordPress вместо archive.php стиль виджета заднего виджета и возможность включения нескольких виджета Escape HTML на входе WP Вложенные инструкции if для эха только одной строки на основе того, какой тег был отфильтрован? Как получить условия из пользовательских таксономий после WordPress 4.5.0 Заполнение страницы содержимым почтовых настраиваемых полей Есть ли способ перечислить все действия, зарегистрированные плагином или темой? Проблема с кодом стиля.min.css Скрыть все на сайте для посетителей, кроме определенных идентификаторов страниц. Как сделать область нижнего колонтитула прозрачной? Использование Avada и WordPress Как показать отображаемое изображение внутри сообщения только в одной отдельной категории Переопределить тему CSS с помощью CSS из плагина Использование переменной для отображения страницы с другой таблицей стилей

Первое сообщение каждой категории

Я пытаюсь создать простой цикл, который получает последнее сообщение из 3 выбранных категорий. Я искал что-то похожее, чтобы учиться, но большинство из них слишком сложны.

На данный момент у меня есть:

<?php // WP_Query arguments $args = array ( 'category_name' => array('lifestyle', 'fashion', 'beauty') ); // The Query $query = new WP_Query( $args[0] ); // The Loop if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); // do something } } else { // no posts found } // Restore original Post Data wp_reset_postdata(); ?> 

Я предполагаю, что мне нужен цикл foreach , но я не уверен, как его реализовать в этом сценарии, и для самого последнего из каждого сообщения?

Любая помощь будет большой.

Solutions Collecting From Web of "Первое сообщение каждой категории"

Невозможно получить по одной должности в каждой категории с одним простым запросом, и даже сложный запрос займет больше времени, чем 3 отдельных запроса. Итак, если вы хотите простейших, то это решение –

 $cats = array('lifestyle', 'fashion', 'beauty'); $exclude_posts = array(); foreach( $cats as $cat ) { // build query argument $query_args = array( 'category_name' => $cat, 'showposts' => 1, 'post_type' => 'post', 'post_status' => 'publish', 'orderby' => 'date', 'order' => 'DESC' ); // exclude post that already have been fetched // this would be useful if multiple category is assigned for same post if( !empty($exclude_posts) ) $query_args['post__not_in'] = $exclude_posts; // do query $query = new WP_Query( $query_args ); // check if query have any post if ( $query->have_posts() ) { // start loop while ( $query->have_posts() ) { // set post global $query->the_post(); // add current post id to exclusion array $exclude_posts[] = get_the_ID(); // do something } } else { // no posts found } // Restore original Post Data wp_reset_postdata(); }