Intereting Posts
Как получить текущий идентификатор страницы через плагин URL-адрес для разбивки на страницы в пользовательском типе содержимого «Post name» permalink возвращает домашнюю страницу для пользовательских сообщений Как заблокировать всплывающие объявления в wordpress iframe? Несколько доменов, одна база данных, 1 родительский / основной контент со всеми контентом, другие домены / подчиненные с фильтрованным содержимым (в зависимости от переменной «location») Укажите пункты подменю Admin? Параметры автозагрузки плагинов Фильтр "Ваши последние сообщения" Как использовать служебную программу для начинающих, чтобы показать некоторые меню по умолчанию? Как добавить значок в новый элемент панели управления? Показать новые сообщения категории в разделенных divs Медиа-загрузчик и менеджер: добавьте / удалите класс с изображением с помощью флажка paginate_links добавляет сильный элемент WP_Error с сообщением о проверке нескольких форм Выход короткого кода появляется перед телом

Показать только топ-3 сообщений из 3-х категорий в порядке на главной странице

Эта функция покажет последние 3 сообщения из любой категории на первой странице:

// Only top 3 posts from CHR category add_action('pre_get_posts', 'ad_filter_categories'); function ad_filter_categories($query) { if ($query->is_main_query() && is_home()) { $query->set('category_name','chatham-house-rules'); $query->set('showposts', 3); } 

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

Есть несколько способов сделать это, но один из способов, который я хотел бы рассмотреть, если бы я был, – это сделать это так. На index.php или на любой странице, на которой появляются сообщения, делайте следующие три раза по разным категориям:

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $arguments = array( 'category_name' => 'category' 'posts_per_page' => 3, 'paged' => $paged ); $wp_query->query($arguments); if (have_posts()) : while (have_posts()) : the_post(); the_content(); endwhile; endif; 

category_name может быть строкой с разделителями-запятыми, которая должна позволять вам иметь три или более категории.

Параметр paged необходим при настройке сообщений на страницу таким образом. Если это не сделано, сообщения не отображаются правильно на последующих страницах сообщений.

Ссылка WP_Query показывает все фильтры, которые могут использоваться в запросе. Он также предлагает альтернативный способ использования запроса.