Спрятать посты определённых категорий

Слов в тексте – 154, время чтения в минутах – 1

Иногда приходится по тем или иным причинам исключать из показа на главной странице блога посты (отрывки) определенных категорий. Есть несколько способов как это сделать.

Во-первых, есть несколько плагинов в библиотеке WordPress, которые не показывают некоторые категории на главной странице блога. Я знаю о Category Excluder и Advanced Post Types Order.

Во-вторых, можно модифицировать файл index.php вашего шаблона (темы), добавив следующий фрагмент кода:


<?php
   $args = array(
       'post_type' => 'post',
       'posts_per_page' => get_option('posts_per_page'),
       'category__not_in' => array(3, 7) // Заменить на ID нужной категории
   );
   $query = new WP_Query($args);
   
   if ($query->have_posts()) :
       while ($query->have_posts()) : $query->the_post();
           // Your post display code here
       endwhile;
   endif;
   wp_reset_postdata();
   ?>

В-третьих, можно добавить очередной сниппет к файлу functions.php – проще через плагин Code Snippets.

Вот этот сниппет:


  function exclude_categories_from_blog($query) {
       if ($query->is_home() && $query->is_main_query()) {
           $query->set('category__not_in', array(3, 7)); // Заменить на ID нужной категории
       }
   }
   add_action('pre_get_posts', 'exclude_categories_from_blog');


Популярные записи


Рубрики блога

newsbee Media