Сегодня захотел добавить фотографии с отпуска в блог, однако сразу стало понятно, что большинству подписчиков они попросту неинтересны. Поэтому появилась идея создать подблог в данном блоге, куда и писать все записи личного характера. Увы стандартный движок WordPress не умеет делать подблоги, поэтому пришлось дописывать функционал самому:
Требования:
- записи из личного не должны попадать на главную страницу
- под записи из личного должна быть отдельная категория (подблог)
- в новом подблоге должна быть своя RSS лента
- в основной RSS ленте не должно быть записей из личного подблога
Решение:
- Создаем рубрику, в моем случае рубрика личное с urlname private
- Узнаем ID новой категории, его можно подсматреть напрямую в БД или в админке при редактировании категории ссылка будет содержать данное число
- Редактируем файл functions.php темы, которую вы используете. Добавляем следующие строчки:
function filter_subblog_entries($query)
{
if (!$query->is_admin &&
(!isset($query->query_vars->category_name) || $query->query_vars->category_name != 'private')
) //exclude private from main and not admin
{
$query->set('cat','-44');
}return $query;
}
add_filter('pre_get_posts','filter_subblog_entries');
Вместо 44 подставляем число, полученное из третьего пункта, вместо private подставляем urlname нашей категории
Готово. Теперь главная страница и RSS лента не содержит сообщений из личного подблога, а в категории личного подблога и RSS содержатся только нужные нам посты.
P.S.
Если вы используете widgets и там есть ссылки на RSS, то необходимо при просмотре подблога показывать другой вариант widget’a (с другой ссылкой на RSS) для этого идеально подходит плагин Widget Logic, который показывает виджеты в зависимости от логического условия.
RSS
Twitter


10 комментариев
Я из-за этого перешел на WP-MU )
Там с этим существенно лучше?)
В общей RSS не будет этих постов?
Нет.
Ещё можно сделать отдельную кнопочку в углу, которая меняет отображение всего контента сразу: «Хочу видеть личное / не хочу». Читатель может заинтересоваться теми же фотографиями, например, между просмотром других постов.
Мысль интересная, но как сделать это по быстрому я не знаю.
Спасибо за полезную фишку.
Переслал парочке коллег, что работают с WP.
У Lady Maksima был пост о плагине, который позволяет исключить размещениеплатных постов на главной и в RSS блога. Так попроще будет.
Как вывести на главной это меню?? Я делаю все как написано но меню не появляется рядом с главной и о блоге
Как вывести эту категорию в списке страниц?