@MisTFoR

Как в архивах выводить записи 1 категории?

Здравствуйте.
У меня есть страница с архивами. Код:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'entry' ); ?>
<?php endwhile; endif; ?>
<?php get_template_part( 'nav', 'below' ); ?>

Пытался изменить код на:
<?php query_posts( 'cat=2' );
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'entry' ); ?>
<?php endwhile; endif; ?>
<?php get_template_part( 'nav', 'below' ); ?>

Все работает, но тогда в архивах выводятся все посты данной категории (то есть вместо того что бы выводить к примеру все посты за июнь, он выводит посты за все время)
Как решить данную проблему?
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Вы можете исключить ненужные категории на хуке pre_get_posts

add_action( 'pre_get_posts', 'exclude_category' );
function exclude_category( $query ) {
	if ( $query->is_archive() && $query->is_main_query() ) {
		$query->set( 'cat', '-1,-1347' );
	}
}


Вам нельзя использовать query_posts(), это функция ядра, вы нарушаете цикл основного запроса
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы