Удобная навигация в Вордпресс: исключение рубрик, разбивка на страницы и т.д.
Нередко, для того, чтобы сделать удобную навигацию, нам нужно подкорректировать настройки, которые присущи любому блогу на платформе Вордпресс (об этих общих правилах мы поговорили в предыдущей статье). Совсем недавно я решала такую задачу на своем литературном блоге Katyaru.ru . И теперь, на данном примере, расскажу, как исключить показ некоторых рубрик с главной страницы, как сформировать удобное меню, а также, как отправить в рассылку через Feedburner посты только одной рубрики.
Удобное меню
Итак, потратьте пару минут, на рассматривание меню блога Katyaru . Замечаете, насколько его структура и структура самого ресурса отличается от многих других блогов, даже, того же Блоготея? — Кстати, эта структура кажется настолько естественной и логичной (по крайней мере, мне так кажется:), что человеку «не в теме» и в голову не придет, что для ее создания потребовались некоторые уловки.
- Главная страница — поскольку тема для этого блога у меня такая же, как на Блоготее (только дизайн я меняю), это статическая страница;
- Блог — здесь выводятся посты в порядке публикации. НО! Посмотрите, тут НЕТ ни стихов, ни пьес, ни рассказов. ТОЛЬКО актуальные посты!
- Рубрики — четыре отдельные рубрики, которые имеют вложенные подкатегории (это обозначает значок >>). Каждый текст находится на своем логичном месте — его просто найти;
- Гостевая — еще одна статическая страница. Поскольку я запрещаю комментарии к постам в категориях «Стихи», «Опера и другое», «Пьесы» и «Проза» — я сделала отдельную гостевую страницу, где можно оставить свои мнения, а также, отправить личное сообщение автору;
- Подписка — если вы подпишетесь на обновления этого блога, то будете получать только публикации из раздела «Блог» (то есть, если я вдруг напишу инсценировку романа «Война и Мир» в 10 томах и опубликую ее на блоге — она не упадет неподъемным грузом вам на почту:)
Попробуйте сделать так, не меняя чуть-чуть код на блоге! — Не получится ничего. Но я немедленно расскажу вам, как добиться желаемого.
Как исключить рубрики с главной страницы блога
Чтобы посты определенной рубрики не выводились на главной странице блога,
нужно сначала узнать ID этой рубрики
(или нескольких рубрик). Это можно сделать двумя путями.
Путь №1: узнать ID рубрики в Вордпресс без плагина
Открываем в админке блога закладку ЗАПИСИ -> РУБРИКИ и наводим курсор на нужную рубрику. Внизу появляется ее адрес, в котором видно ID:
Здесь мы видим, что ID рубрики «Проза» — 5.
Путь №2: узнать ID рубрики в Вордпресс с плагином
Автор моей темы для блога рекомендует устанавливать на нее плагин Reveal IDs . Этот плагин прямо в админке показывает мне ID всех структурных компонентов моего блога — рубрик, записей, страниц:
Удобно!
В общем, узнаем, так или иначе, ID всех рубрик, которые должны быть исключены из публикации на главной странице блога.
потом открываем закладку ВНЕШНИЙ ВИД -> РЕДАКТОР -> ФУНКЦИИ ТЕМЫ (functions.php)
и вставляем туда следующий код:
function removeFromHome($query) { if ($query->is_home) {$query->set ('cat','-5 -46');} return $query; } add_filter('pre_get_posts','removeFromHome');
Обратите внимание на строку (‘cat’,’-5 -46‘) — это именно ID рубрик, которые мы исключаем (в данном случае, №№ 5 и 46) Но мы можем исключить довольно большое количество рубрик (всем должно хватить:). Перечисляйте их просто через пробел, не забывая знак «минус» перед номером.
Вот, как это выглядит в моем случае:
Как отправить в рассылку посты одной рубрики
Создав удобное меню, я захотела сделать столь же удобной и рассылку блога. И тут было испробовано множество кодов, НО — они не действовали на FeedBurner. А ларчик открывался удивительно просто!
Чтобы отдавать в рассылку только одну рубрику — нужно указать в FeedBurner адрес не всего блога,
а именно этой рубрики!
Видите, написано не http://katyaru.ru/feed — адрес фида всего блога, а http://katyaru.ru/blog/feed . Теперь в рассылку попадет только то, что будет отображаться на этой странице. То есть, только актуальные посты!
Важно, что можно изменить адрес фида для уже созданной рассылки!
Можете, кстати, сделать отдельную рассылку для каждой рубрики. Не уверена, что это очень нужно и вообще полезно, но, мало ли…
Как разбить пост на страницы
И последний вопрос, которым я задалась, создавая литературный блог: как публиковать очень длинные тексты?
Если мы нацелены на активное продвижение нашего блога, то публиковать слишком длинные посты — не стоит. Лучше разбивать их на серии статей. Но в данном случае я имела дело с литературными текстами, членить которые на отдельные публикации — не комильфо. Но и видеть перед собой не структурированную «простыню» — не очень-то приятно…
Вот простое решение. Тег:
<!--nextpage-->
Позволяет разбить длинный пост на страницы — именно внутри самого поста! Вставляется он, естественно, в режиме HTML-редактора:
В визуальном редакторе появится вот такой значок:
А так будет выглядеть постраничная навигация в опубликованной статье:
PS А какие идеи навигации вы используете на своих блогах?
Читайте БлоготеЙ! на Google+ | |
Читайте БлоготеЙ! на Фейсбуке |
та-а-ак, полезненько…
[Ответить]
А у меня плагины стоят для исключения.
[Ответить]
оу, спасибо, давно хотела текст на страницы разбить, но не знала как! как всегда актульно и вовремя!
[Ответить]
katyaru отвечает:
Октябрь 3rd, 2012 at 12:52
Я рада)
[Ответить]
Очень пригодилась разбивка поста на страницы! Спасибо!
[Ответить]
katyaru отвечает:
Октябрь 9th, 2012 at 14:15
Пожалуйста! Маленькая «хитрость», но полезная)
[Ответить]
Доброго времени суток! А я хочу отсортировать рубрики, чтобы располагались в нужном мне порядке, а не как в WP по алфавиту. Установила плагин My Category Order, все вроде бы настроила как у них написано, но, он не работает — на сайте все по-прежнему в алфавитном порядке Может подскажите способ как отсортировать рубрики?
[Ответить]
katyaru отвечает:
Ноябрь 1st, 2012 at 10:46
Честно говоря, на вскидку — не подскажу, т.к. не озадачивалась этим вопросом. Подозреваю, что есть еще плагины.
Мне пока приходят в голову только «народные» способы, типа, переназвать рубрики с номерами… Но это, конечно, бред.
Нужно погуглить…
[Ответить]
Приветствую! Сегодня попробовала, руководствуясь Вашей статьей, исключить показ рубрик из главной. Всё получилось! Вот такое маленькое чудо! Спасибо большое!
P.S. А с сортировкой рубрик я разобралась (прописала в коде &orderby=order).
Всего Вам доброго!
[Ответить]
katyaru отвечает:
Ноябрь 1st, 2012 at 18:53
Спасибо за отклик. Рада, что все получилось!
[Ответить]
Здравствуйте, это снова я. Только сейчас заметила такую проблему: после того, как я исключила рубрики из главной, в виджете «Свежие статьи» не отображаются новые статьи, которые я размещаю, только та, что на главной находится. Я так поняла, что там отображаются свежие статьи, которые раньше всегда появлялись на главной одна за другой,а сейчас они у меня каждая только в своей рубрике появляются. А можно ли сделать так, чтобы все-таки этот виджет в сайдбаре видел и отображал все свежие записи, где бы они ни были опубликованы? Заранее благодарю.
[Ответить]
katyaru отвечает:
Декабрь 8th, 2012 at 23:55
Сделать такое, используя этот стандартный виджет не получится. Пути я вижу два: морочиться с кодами или искать в плагинах. Не подскажу точное название, но нужен плагин, в котором можно указать категории, посты которых выводить. Это первое, что приходит в голову. Нужно поэкспериментировать, чтобы сказать что-то наверняка.
[Ответить]
katyaru отвечает:
Декабрь 9th, 2012 at 00:12
Лена, на следующей неделе опубликую пост о том, как вывести посты любых рубрик (категорий) в сайдбаре без плагина. Здесь в ответе объяснить невозможно)))
[Ответить]
Елена отвечает:
Декабрь 9th, 2012 at 09:49
Это хорошо! Я буду ждать с нетерпением!
[Ответить]
katyaru отвечает:
Декабрь 10th, 2012 at 20:22
Вот тут ответ /widget_excludes/
[Ответить]
Во круто! классно,Спасибо,блог супер, пойду исключу рубрики, хотел вывести отдельные рубрики в отдельных блоках с красивыми ссылками картинками,
[Ответить]
Спасибо! То, что надо. А то раз прописал по какой то инструкции код, так потом в админку зайти не мог. Отличная статья, нужная!
[Ответить]
katyaru отвечает:
Июнь 26th, 2013 at 12:35
Пожалуйста!
[Ответить]