Intereting Posts
Каков параметр $ menu, используемый в wp_nav_menu ()? Как отключить или скрыть WordPress.com в качестве опции входа в социальные сети для Jetpack Комментарии Отключить визуальный редактор на одной конкретной странице Как добавить плагины WordPress вместе с моей автономной темой Как мой плагин отображает заполненное новое почтовое окно HTML-подменю Custom Nav Walker Сохранение типов и полей пользовательских сообщений в пользовательской таблице Ошибка отправки массива входов WordPress Alphabetic Loop Issue Целевая секунда от последнего сообщения в цикле Добавить URL сообщения для управления экраном редактирования Отключите трекбэк / pingback и комментарии на всех существующих многосайтовых сайтах Отображение миниатюр последнего сообщения WordPress в слайдере с автоматическим приращением Бесконечная прокрутка Как отображать условное содержимое, если wp_nav_menu ($ args) извлекает что-то

Исключить идентификатор сообщения из wp_query

Как я могу исключить одну конкретную запись из запроса WP_Query? (Например, показать все сообщения, кроме сообщения с ID 278)

Я пробовал аргумент post__not_in, но он просто удаляет все сообщения.

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

Вот мой текущий запрос

<?php $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(array( 'post_type' => 'case-study', 'paged' => $paged, )); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 

благодаря

Я полагаю, что это было тяжело, но, чтобы ответить на ваш первоначальный вопрос, я собрал все идентификаторы сообщений в массиве в первом цикле и исключил эти сообщения из второго цикла, используя «post__not_in», который ожидает массив сообщений id

 <?php $args1 = array('category_name' => 'test-cat-1', 'order' => 'ASC'); $q1 = new WP_query($args); if($q1->have_posts()) : $firstPosts = array(); while($q1->have_posts()) : $q1->the_post(); $firstPosts[] = $post->ID; // add post id to array echo '<div class="item">'; echo "<h2>" . get_the_title() . "</h2>"; echo "</div>"; endwhile; endif; /****************************************************************************/ // array of post id's collected in first loop, can now be used as value for the 'post__not_in' parameter in second loops query $args $args2 = array('post__not_in' => $firstPosts, 'order' => 'ASC' ); $q2 = new WP_query($args2); if($q2->have_posts()) : while($q2->have_posts()) : $q2->the_post(); echo '<div class="item">'; echo "<h2>" . get_the_title() . "</h2>"; echo "</div>"; endwhile; endif; ?> 

Первый цикл отображает все сообщения в категории и собирает идентификатор сообщения в массив.

Второй цикл отображает все сообщения, за исключением сообщений из первого цикла.

Параметр, который вы ищете, – post__not_in (у кайзера есть опечатка в его ответе). Таким образом, код может выглядеть следующим образом:

 <?php $my_query = new WP_Query(array( 'post__not_in' => array(278), 'post_type' => 'case-study', 'paged' => $paged, )); while ($my_query->have_posts()) : $my_query->the_post(); endwhile; 

Вы должны определить post__not_in arg как массив. Даже для одного значения. И, пожалуйста, не перезаписывайте глобальные основные переменные временными материалами.

 <?php $query = new WP_Query( array( 'post_type' => 'case-study', 'paged' => $paged, 'post__not_in' => array( 1, ), ) ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); // do stuff } // endwhile; } // endif; ?>