Как не выводить посты с определённой рубрики на главную для 3.1

Буквально только вот вышла новая верси wordpress 3.1, и я сразу же обновился. С первого взгляда, всё работало замечательно, и никаких эксцессов не произошло. Все нужные плагины не отвалились, и сайт не рухнул 🙂 Но вдруг на главной странице, я увидел пост который там не должен был находится. Как оказалось решение которое скрывало с главной страницы определённые посты, перестало работать. Погуглив я обнаружил что это не моя локальная проблема. И естественно, первопроходцы обновившиеся раньше меня, уже нашли решение. Заходим на в папку темы которую вы используете, и открываем на редактирование файл functions.php В самом начале файла, сразу после <?php вставляем такой вот код:

function exclude_category($query) {
if ( $query->is_feed or $query->is_home ) {
$query->set('category__not_in', array(3, 2, 1));
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

Где вместо (3, 2, 1) подставляете номера нужных вам ID рубрик.

Номера ID теперь найти немного сложней. Надо зайти в управление рубриками, и щёлкнуть "изменить". Вверху в адресной строке, вы найдёте необходимую вам цифру. Смотрим картинку:

Вот собственно и всё. Решение было найдено здесь.

Как не выводить посты с определённой рубрики на главную

UPD: для wordpress 3.1 не работает, рабочее решение здесь

Решил я сделать дополнительный раздел на сайте, никак не связанный с основной тематикой. Так сказать, и для себя чтобы если что оно не забылось, и может комуто поможет, мало что в жизни бывает. Для этого, я создал рубрику "Не в тему", и вывел в меню, рядом с главной страницей. В списке основных рубрик, это не присутствует и никак не мешает посетителям. Но тут встал вопрос, что же делать чтобы посты из этой отдельной части сайта не выводились на главную? Потому что явно мои записи о том же самом вордпресе, или ещё о чём то врядли нужны большинству тех кто сюда иногда заходит. Начал искать как решить этот вопрос. Нашел плагин, потестировал его, и он оказался практически не рабочим. Да и не обновляется он уже с 2009 года. Но всё оказалось как всегда очень просто, надо только немного пойти более сложным на первый взгляд путём. Допустим мы хотим удалить из вывода рубрику с ID 88. Заходим файловым менеджером в папку где у вас установлен вордпресс, или на сервер фтп клиентом. Заходим в директорию где у вас лежит ваша тема. Я использую стандартную, поэтому у меня вот такой путь:

/wp-content/themes/twentyten

Отрываете на редактирование файл functions.php, и например в самом начале, после символа <?php вставляете вот такой код:

function removeFromHome($query) {
if ($query->is_home)
{$query->set('cat','-88');}
return $query; }
add_filter('pre_get_posts','removeFromHome');

Скрыть можно и нескольо рубрик, для этого ихние ID надо перечислить через запятую. Вот так: {$query->set('cat','-88, -100, -5');} Это скроет из вывода рубрики с ID 88, 100 и 5. Вот вообщемто и всё! И да, ID рубрики можно посмотреть если навести мышкой на название рубрики на странице, и внизу браузера будет показана ссылка. Последнее число в этой ссылке и есть номер ида рубрики. Или просто зайти в рубрику, и уже сверху, в адрессной строке браузера будет урл, в котором тоже самое последнее число и есть необходимый ID. Решение было взято с сайта wordpressplugins.ru