Поддержка Проблемы и решения Как на главной в цикле выводить посты только из определенной категории?

  • Решено DirtyDan

    (@dirtydan)


    Как на главной странице и на страницах пагинации отфильтровать вывод постов только из определенной категории?

    Перед have_posts вставляю query_posts('cat=2') и это почти работает! На главной действительно выводятся посты только из категории с ID = 2, вот только проблема в том, что на страницах пагинации (2,3,4,5…) выводятся точно такие же посты, что и на главной.

    Как сделать так чтобы и на главной и на страницах пагинации выводились посты только из определенной категории?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, wpcute.ru

    Как сделать так чтобы и на главной и на страницах пагинации выводились посты только из определенной категории?

    1. Удалить query_posts.
    2. Воспользоваться фильтром pre_get_posts и вставить его в functions.php темы.

    Код для фильтра будет выглядеть примерно так:

    add_action( 'pre_get_posts', 'my_pre_get_posts' );
    function my_pre_get_posts( $query ) {
    	if ( $query->is_front_page() && $query->is_main_query() ) {
    		$query->set( 'cat', '2' );
    	}
    }

    Работает! Спасибо! Вспомнил, этим кодом я очень давно уже пользовался, только использовал его для подмешивания к основным постам посты из дополнительных таксономий.

Просмотр 2 ответов — с 1 по 2 (всего 2)