Intereting Posts
Отображение содержимого POST с помощью HTML-тегов и всего добавить функцию PHP в the_content Как значение update_post_meta как массив Не показывать список, если нет категорий для отображения Как удалить устаревшие изображения с неправильным размером в _wp_attachment_metadata? Случайная фотография Как отображать меню нижнего колонтитула в wordpress Где я могу найти связанные шрифты в моей теме? 500 Внутренняя ошибка сервера после регистрации, но с успешной регистрацией Все мои вставленные изображения получают ссылку на полное изображение, даже если оно уже полноразмерное изображение Использование WordPress в качестве CMS: предпочтения разработчика для пользовательских vs существующих плагинов Создание XML-файла Sitemap для блогов на платформе Magento Как проверить версию другого плагина, а затем добавить в него страницу подменю Раньше таблица стилей не перекрывалась позже Как усечь заголовки в виджетах Recent Posts?

Запрос нескольких категорий с различными смещениями

На моем сайте у меня есть раздел «Последние новости», в котором показаны последние 4 истории в категории «Ломающие новости».

В соответствии с этим у меня есть специальный раздел новостей, в котором представлены еще 5 историй из категории «Ломающие новости». Я получаю эти сообщения, просто устанавливая смещение на 4 в WP_Query

Я хочу сделать корректировку в разделе новостей. Так что он по-прежнему тянет в 5 из последних историй от Breaking News, но если история добавлена ​​в категорию «Избранные новости», то она тянет это.

Некоторый код pseduo будет чем-то вроде

Get the 5 latest posts from Breaking News with Offset of 4 and from Featured News with Offset 0 

Кажется довольно простым, когда это написано так, но я не могу заставить его работать. Я не могу заставить WP_Query принимать смещение от одной категории, а не от другой.

Я пробовал это

 $featuredPosts = new WP_Query( array( 'posts_per_page' => 5, 'cat' => 169, 'offset' => 4 ), array( 'posts_per_page' => 5, 'cat' => 172, 'offset' => 0) ); 

Но это дает мне первые 5 сообщений из cat 169 и игнорирует второй массив запросов из 172.

Я также попытался сохранить все идентификаторы сообщений, уже выведенные в «Ломать новости», а затем не выводить их снова, поэтому я могу сделать более простой запрос (получить последние 5 из break & featured), но проблема в том, что он не всегда выводит 5 сообщений поскольку он будет исключать некоторые из последних новостей.

Может быть, я полностью передумал, и есть более простой способ, есть идеи?

Solutions Collecting From Web of "Запрос нескольких категорий с различными смещениями"

У меня была аналогичная проблема с выделенным разделом, и я сделал это так

Fist создает переменную массива вне цикла:

 $exclude_us = array() 

Затем добавьте идентификатор каждого сообщения в первом цикле в массив (в первом цикле):

 if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); $exclude_us[] = get_the_id ...the rest of the loop... 

И затем во втором цикле, если сообщение имеет этот идентификатор, пропустите его (продолжить):

 if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); if ( in_array ( get_the_id(), $exclude_us ) ) { continue; } ...the rest of the loop...