Как исключить записи определенной рубрики с главной страницы или из архива WordPress – query_string

Очень часто бывает необходимо как-то отредактировать вывод записей блога на главной странице. Ну например, нужно исключить записи какой-то определенной категории с главной страницы блога. Эту задачу можно решить несколькими способами, но я нашел наиболее правильный выход из этой ситуации.

Исключаем записи определенной категории из архива и главной страницы

Так как все записи на главной странице в WordPress выводятся с поморщью файла loop.php, то и редактировать мы будем именно этот файл. А именно, нам необходимо добавить всего одну строку в этот файл, примерно следующего содержания:

<? global $query_string; query_posts($query_string . "&cat=-67"); ?>

Где число "-67" означает ID той рубрики, записи которой мы исключаем на главной странице. То есть, все записи, которые находятся в рубрике с id=67, не будут показываться на главной странице, а также в архивах и везде где используется файл loop.php.

Знак "-" говорит о том, что мы исключаем записи рубрики.

Узнать id рубрики можно в админ панели на вкладке "Рубрики". При наведении на нужную рубрику, в строке состояния ваш браузер отобразит url адрес, в котором будет содержаться id нужной рубрики.

Вставлять строку нужно перед следующим кодом в файле loop.php:

<? global $query_string; query_posts($query_string . "&cat=-67"); ?>
<? while (have_posts()) : the_post(); ?>

<!-- Начало поста -->
	<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
	<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( '%s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>"><?php the_title(); ?></a></h2>
			<div class="entry-summary">
				<?php the_excerpt(); ?>
			</div><!-- .entry-summary -->

		</div><!-- Конец поста -->
<?php endwhile; ?>

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

Исключаем определенные записи только с главной страницы

Если вам нужно исключить записи определенной рубрики только с главной страницы, то необходимо создать файл loop-index.php и наполнить его тем же содержимым, что и в файле loop.php. А затем отредактировать файл loop-index.php так, как описано выше.

Дело в том, что файл loop-index.php используется только на главной странице, в то время как файл loop.php может использоваться одновременно на главной странице, в архивах и категориях.