Всем привет. Сегодня настроение у меня хорошее. Но сейчас не об этом. И так, сегодня мы с вами обсудим тему, как сделать скрытую рубрику на wordpress блоге, и как сделать так, чтобы посты отдельной рубрики не попадали на главную страницу wordpress блога.

Я понимаю, что тема эта далеко не новая, многие могут найти по ней материал в сети, или и так давно сделали то, о чем я сейчас собираюсь написать, но я публикую этот пост сегодня, скорее для себя, поскольку информацию нашел только что, долго мучился с правильной постановкой вопроса в Яндексе. Через пару дней опять все из головы вылетит, поэтому я решил написать все проделанные мной действия в виде поста, чтобы уже ни когда не потерять эту информацию.

Как создать скрытую рубрику на wordpress блоге.

Что такое срытая рубрика и зачем она нужна я писал в одном из прошлых своих постов. Можете кликнуть по ссылке и почитать зачем это нужно. Но до самого создания “в ручную” на wordpress блоге у меня руки дошли только сегодня. Информацию мне пришлось собирать с разных источников, поэтому опишу все в той последовательности, в которой я проделал все действия сам.

Существует масса плагинов для этой цели, и раньше на других ресурсах я ими охотно пользовался, но свой любимый блог я вовсе не хочу нагружать дополнительными плагинами, наоборот, в ближайшем будущем я планирую его разгрузить и многие функции хочу перевести в “ручной режим”. Поэтому сегодня я нашел и успешно применил информацию о том, как создать скрытую рубрику без применения специальных плагинов.

Последовательность наших с вами действий:

1. Нужно зайти по ftp на свой wordpress блог и открыть для редактирования файл default-widgets.php. Найти его можно по следующему адресу – Ваш сайт / wp-includes / default-widgets.php

2. Открываем найденный файл и находим, через поиск, строку

$cat_args = array(‘orderby’ => ‘name’, ‘show_count’ => $c, ‘hierarchical’ => $h);
заменяем ее на

$cat_args = array(‘orderby’ => ‘name’, ‘show_count’ => $c, ‘hierarchical’ => $h, ‘exclude’ => ‘1,2,3’);
Где 1,2,3 – это id ваших рубрик. Если вы преследуете цель исключения только одной рубрики, то вам запятые не пригодятся. Чтобы узнать id нужной рубрики, нужно в Админ панели — / Записи / Рубрики навести мышкой на рубрику. Внизу появится строчка, в конце которой будет стоять id=132. Это и есть нужный номер id вашей рубрики.

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

Поэтому нужно еще проделать два небольших хака, которые решат для нас и эту проблему, их нужно добавить в файл functions.php, если он есть. Если его нет — создать и добавить.

Первый код убирает посты из категорий с id=1,2,3 с главной страницы.
function removeFromIndex($query) {
if ($query->is_home)
{$query->set(‘cat’,’-1,-2,-3′);}
return $query; }
add_filter(‘pre_get_posts’,’removeFromIndex’);

Этот, соответственно, из RSS.

function excludeFromRSS($query) {
if ($query->is_feed) {
$query->set(‘cat’,’-1,-2,-3′);
}
return $query;
}
add_filter(‘pre_get_posts’,’excludeFromRSS’);

Теперь все. Скрытая рубрика создана и посты находящиеся в ней не отображаются на главной странице сайта и в RSS ленте они не появятся соответственно тоже.

Читайте также:

Похожие записи

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.