Иногда удобно не выводить на главной своего блога некоторые рубрики. К примеру профильное направление в этом блоге – компьютеры и прочее для начинающих. С другой стороны иногда хочется поделиться и чем-нибудь из другой тематики. Раньше это было просто, но, начиная с версии 3.x перестало работать.
Для того, что бы опять спрятать некоторые рубрики с главной, надо сделать следующее.
Заходим в директорию текущей темы. Например,
/domains/ваш_домен/public_html/wp-content/themes/default/
и ищем там файл functions.php
Редактируем его добавляя следующие строки:
function exclude_category($query) {
if ( $query->is_feed or $query->is_home ) {
$query->set('category__not_in', array(8,52,59,60,72,74));}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');
Таким образом ни в rss ни на главную посты с этими рубриками не попадут.
Если в rss они должны попасть, а на главную – нет, код будет вот таким:
function exclude_category($query) {
if ( $query->is_home ) {
$query->set('category__not_in', array(8,52,59,60,72,74));}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');
Как узнать номера категорий? У меня они 8,52,59,60,72,74
Очень просто. Идём вот по такой ссылке: http://ваш_блог/wp-admin/edit-tags.php?taxonomy=category

Наводим мышь на категорию (рубрику) и смотрим в статусной строке номерок. В случае примера это 74.
Или заходим в управление рубриками, и кликаем на “изменить”. Вверху в адресной строке, вы найдёте необходимую вам цифру.
Т.е. если я напишу код вот так:
function exclude_category($query) {
if ( $query->is_feed or $query->is_home ) {
$query->set('category__not_in', array(74));}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');
то ни один пост с рубрикой “Мои Разработки” не попадёт ни на главную страницу ни в rss.
Если есть вопросы – спрашивайте.
UPD: Еще вариант:
function removeFromHome($query) {
if ($query->is_feed || ($query->is_home && !(is_paged())))
{$query->set('cat','-8,-52,-59,-60,-72,-74');}
return $query; }
add_filter('pre_get_posts','removeFromHome');