Intereting Posts
Настроить название, описание и сфокусированное ключевое слово Архив для CPT Chrome + Ad Blocker скрывает содержимое сообщения Строка по умолчанию не появляется. Вход Ajax без перенаправления / перезагрузки Как импортировать данные из плагина Mingle Forum в bbPress? Добавление разметки в текст столбца на странице администрирования «Редактировать страницы» Можно установить часовой пояс нового пользовательского сайта при создании пользователя с использованием Gravity Forms? Как добавить подборщик цветов в виджеты? Попытка получить новую роль для прав на редактирование для настраиваемого типа контента Репликация параметра WP_Query 'param с помощью $ wpdb Экран настройки местоположения (контекстная) вкладки справки Ссылка на страницу поиска без параметра поиска Как добавить уникальный класс изображения в WordPress Получить определенную категорию сообщений при использовании настраиваемого типа сообщений

Исключить первое «n» количество сообщений тега с домашней страницы?

Пример использования (пример): с помощью отдельного пользовательского запроса на домашней странице моего веб-сайта отображается 5 избранных сообщений с тегами «Основные моменты (основные моменты)», за которыми следуют последние сообщения, из основного запроса.

Я не хочу, чтобы 5 последних сообщений, то есть первые 5 должностей с тегами «основные моменты», отображались среди последних сообщений.

Иными словами, последние сообщения должны включать в себя все последние сообщения, но при этом, если он находит сообщение, помечены «основные моменты» и входит в число первых 5, его следует исключить.

Все это, не разбирая разбивку на страницы.

Как мне это сделать?


Я имею слабое представление о том, как я могу это сделать:

function itsme_filtered_latest_posts( $query ) { if( $query->is_home() && $query->is_main_query() ) { $query->set( ... ); $query->set( 'offset', ... ); } } add_action( 'pre_get_posts', 'itsme_filtered_latest_posts' ); 

Как я уже сказал, у меня есть только слабая идея, которая так же хороша, как и отсутствие.

Solutions Collecting From Web of "Исключить первое «n» количество сообщений тега с домашней страницы?"

А в вашем примере у вас есть доступ ко всем объектам запроса WP_Query Object_vars (см. [Здесь]) 1 , вы можете использовать post__not_in query_var в своем запросе. Он принимает массив идентификаторов в качестве параметра. Поэтому сначала вы запрашиваете для своих сообщений помеченные «выделенные». Показывая их, вы добавляете все их идентификаторы в массив, подобный этому

 <?php $do_not_duplicate = array(); // set befor loop variable as an array while ( have_posts() ) : the_post(); $do_not_duplicate[] = $post->ID; // remember ID's of 'highlighted' posts //display posts endwhile; ?> 

то вы начинаете другой запрос.

 <?php // another loop without duplicates query_posts( array( 'post__not_in' => $do_not_duplicate ) ); while ( have_posts() ) : the_post(); // display your posts without the highlighted endwhile; ?> 

Сделайте что-то вроде этого:

 function get_custom_posts_wpse_124312() { static $post_qry; if (!empty($post_qry)) { return $post_qry; } else { $post_qry = new WP_Query(array('post_type'=>'post','posts_per_page'=>2)); // whatever arguments you need } return $post_qry; } function filter_featured_special_wpse_124312($qry) { if ($qry->is_main_query()) { // whatever conditions you need remove_action('pre_get_posts','filter_featured_special_wpse_124312'); $fs = get_custom_posts_wpse_124312(); if (!empty($fs)) { $ids = wp_list_pluck($fs->posts,'ID'); $qry->set('posts__not_in',$ids); } } } add_action('pre_get_posts','filter_featured_special_wpse_124312'); 

get_custom_posts_wpse_124312() должен извлекать ваши «5 избранных сообщений, помеченных« Основные моменты (основные моменты) », используя любые аргументы, которые вам нужны для этого. Я принимаю tax_query ? Затем вы используете эти данные, чтобы исключить сообщения, возвращаемые из основного запроса. Затем вы можете использовать get_custom_posts() в своем шаблоне для получения объекта post для отображения. Вам нужно будет создать Loop для него в файле шаблона. Поскольку $post_qry является статическим, запрос «featured» должен выполняться только один раз.