Как сделать метки на сайте вордпресс
Сегодня небольшая статья о метках в WordPress. Тема несложная, разобраться с метками легко, но не написать об этом нельзя, так как метки играют большую роль на блоге под управлением WordPress.
Что такое метки в WordPress и зачем они нужны на блоге?
Чтобы лучше понять, что такое метки в WordPress, обратимся к первоисточнику. В английской версии используется слово tag. В переводе на русский оно имеет много значений. Вот некоторые из них, наиболее интересные для нас:
Tag – метка, бирка, ярлык. И глаголы – соединять, помечать, связывать.
Метки – это слова, значимые для данной статьи. У статьи может быть несколько меток, у разных статей есть одинаковые метки. Благодаря меткам статьи блога оказываются связанными друг с другом.
Метки, также как и рубрики, структурируют информацию на блоге. В ленте блога статьи идут в обратном хронологическом порядке, то есть располагаются не по темам, а по дате. Метки и рубрики позволяют делать выборку по определенной теме, ключевому слову, таким образом структурировать информацию по другим признакам.
Чем отличаются метки от рубрик.
Эти два понятия имеют как сходство, так и различие. И те, и другие связывают, объединяют статьи по определенным признакам, являются элементами навигации и средствами перелинковки сайта.
Но каждая статья принадлежит одной, реже двум, трем рубрикам, а меток у нее может быть много. Рубрики – это достаточно большие разделы блога, обычно их не много, не больше десяти, а меток блог содержит большое количество.
Где отображаются метки?
Метки отображаются в конце каждой записи. Это удобно для пользователя. Прочитав статью, он может кликнуть по метке и перейти к другим записям, связанным с ней.
В WordPress есть возможность поместить метку в меню блога. Делается это просто, аналогично тому, как в меню размещается рубрика. Другой вопрос, насколько это целесообразно.
Управление метками
В следующих статьях мы рассмотрим очень важную и достаточно сложную тему о медиафайлах в WordPress. Также будет продолжена тема ускорения загрузки сайта.
Несмотря на то, что всё это делается функцией register_taxonomy_for_object_type(), код для каждой таксономии будет разным — отдельно для рубрик, отдельно для меток и отдельно для произвольной таксономии.
Каждый листинг кода будет состоять из двух частей:
- Первая часть кода — основная, именно в ней и будет добавляться поддержка определенной таксономии (рубрики, метки и пр.)
- Вторая часть кода — это модификация стандартных запросов. Т.е. например вы открыли на сайте страницу архива какой-либо категории, а там отображаются и записи post и страницы page .
Как привязать рубрики к страницам?
Достаточно добавить этот код в functions.php темы.
Как привязать метки к страницам?
Можно одновременно использовать с кодом для рубрик.
Метабоксы рубрик и меток на странице редактирования страниц (тип поста page) WordPress.
Привязка таксономий к произвольным типам постов
Способ 1. register_taxonomy()
Тут всё проще — достаточно при регистрации таксономии указать все необходимые типы постов в параметре $object_type функции register_taxonomy().
А что, если у нас нет доступа к параметрам функции register_taxonomy()? Что, если она является частью плагина или темы, и установленные нами параметры будут сбрасываться каждый раз при обновлении?
Тогда будем использовать такой же способ привязки, который актуален для рубрик и меток.
В данном примере привязываем рубрики к произвольному типу постов product .
Смотрите также
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
Комментарии — 30
Спасибо, очень пригодилась статья!
А как в функции true_expanded_request_custom($q) добавить к категориям еще и тэги, и произвольную таксономию custom_tax?
В синтаксисе плаваю и вообще. ))
Заранее спасибо.
Скажите пожалуйста а как привязать к странице к рубрики?
Извините, а код из статьи у вас не заработал?
Заработал, но только все наоборот надо чтоб страницы к рубрикам привязывались
Тогда думаю вам нужно это.
Спасибо, но это не то что нужно, не сильна совсем в кодах
У меня тот же вопрос что и у Иры, теперь страницы в рубриках отображаются, а надо чтобы определенная рубрика на страницу выводилась, т.е страница не была статичной, а наполнялась определенной рубрикой.. Заранее спасибо!
У меня код не заработал. Ошибку выдает при сохранении страницы, для которой была выбрана рубрика.
То есть, meta box на "страницах" отображается, но толку от него, если при сохранении белый фон и предупреждение:
Warning: Cannot modify header information - headers already sent by (output started at W:\domains\travel\wp-content\themes\mosaic\functions.php:1) in W:\domains\travel\wp-admin\post.php on line 235
Warning: Cannot modify header information - headers already sent by (output started at W:\domains\travel\wp-content\themes\mosaic\functions.php:1) in W:\domains\travel\wp-includes\pluggable.php on line 1178
Простите. ошибка в кодировке.
Код работает, спасибо! Но только в бэк-энде.
Здравствуйте! Как я могу получить массив с рубриками, привязанными к странице?
Привязал 2 рубрики, вардамплю:
О привязанных рубриках никакого упоминания..
Благодарю! Помогло. Статьи у вас отличные! Спасибо
Михаил, добрый день.
Уже не первый раз нахожу ваши полезные статьи в поисковике по разным запросам. Теперь уже вижу домен и жму для перехода на сайт, т.к. знаю, что тут все по делу))
Михаил, у меня вопрос такой: а на главное страницы будут в этом случае выводиться? В ленту рсс уходить? Мне бы не надо. То есть, я жду от этой функции, что страницы с полезной информацией будут добавляться как бы фоном, незаметно для пользователей, но в то же время для заинтересованных в рубрике и по тегу страницы отображаться будут.
Например, есть рубрика "Бали", тег "Авиа". Я создала запись про аэропорт Денпасар, понятно, что в рассылке это никому неинтересно читать, да и на главной вовсе необязательно это афишировать, эта запись просто для поискового трафика. Вот думаю подобные статьи создавать страницами, но чтобы в рубриках или как минимум по тегам они фигурировали, но в общей ленте не шли.
Если я сделаю функционал в вашей статье, это так и будет работать, или же страницы будут себя вести как и записи блога? Спасибо!
Михаил, спасибо!
Все отлично работает! Прям как надо))
Михаил здравствуйте! Во-первых отличный блог, много полезной информации, спасибо Вам) Теперь собственно сабж:
Проделал все как написано в статье, но что-то не могу понять что изменилось, страница отображается так, будто не имеет к рубрике никакого отношения. Ожидал увидеть примерно следующее:
Создал страницу, привязал к рубрике. При переходе в рубрику, отображается ссылка на эту страницу. Переходим по ссылке и открывается та самая страница. Но сейчас даже в хлебных крошках не выстраивается нужная иерархия. Объясню что нужно:
Есть несколько рубрик, условно:
-Дома кирпичные
-Дома из бруса
.
В каждой рубрике есть что-то похожее на меню:
-Дома кирпичные
--Описание(просто текст)
--Проекты(список постов)
--Отзывы(список постов)
.
-Дома из бруса
--аналогичные пункты
В итоге иерархия должна строиться след. образом:
Дома кирпичные -> Описание
Дома кирпичные -> Проекты -> Проект 1
и т.д.
Реализовал бы все через вложенные рубрики, но сложность в том, что для пунктов в которых есть посты нужен уникальный шаблон. Надеюсь понятно объяснил) Подскажите пожалуйста в какую сторону копать, как-то дорабатывать Ваше решение, или может есть другой вариант? Спасибо!
Добрый день!
спасибо!
По идее этот код делает две вещи:
1) добавляет возможность при редактировании страницы определить рубрику для неё
2) на самой рубрике выводить помимо записей еще и страницы.
По идее код этот в своё время использовался и должен работать. У вас второй пункт не работает я верно понимаю? Рубрика вообще пустая или в ней только записи отображаются сейчас?
Первый пункт работает. Второй нет. В рубрике выводятся записи, но не выводятся страницы. Ну и я так полагаю что не строятся хлебные крошки в нужном порядке, а надо бы) Спасибо!
Рубрики и метки (теги) помогают структурировать контент. Благодаря этому ваши пользователи могут быстро находить интересующие страницы и статьи. В этой статье мы разберем, что такое теги WordPress, зачем они нужны и как выбирать их правильно.
Если вы только начали делать сайт и еще ничего не знаете о таксономии, то вот наша большая статья.
А сейчас о тегах (метках).
Теги WordPress: что, зачем, как
Важно: Неправильное использование тегов может затруднить навигацию по сайту. Это не просто плохо и неудобно для пользователей. Это может также подпортить SEO сайта.
Теперь по порядку.
Что такое теги (метки)?
Метки (aka tags, теги) — это микроданные, которые конкретизируют записи сайта.
Что происходит, когда вы добавляете метку?
Когда вы добавляете метку к записи, запись добавляется в архив этой метки.
Например, ваш сайт о кулинарии.
Это удобно. Пользователи смогут перейти на страницу метки и посмотреть все рецепты приготовления торта.
Также и поисковики поймут, что все записи в этом архиве на одну тему.
Когда вы добавляете метку, которую ранее не использовали, WordPress автоматически создает ее архив. Если вы задаете по 10-15 уникальных меток к каждой записи, вы создаете десятки архивных страниц меток.
Если на каждой из этих страниц архива будут всего 1-2 записи, это будет не очень хорошо.
Потому что пользователям будет сложно найти похожие посты. А поисковику — сложно понять, о чем ваш сайт.
Вывод:
Не задавайте слишком много меток к записи.
Не используйте метки, которые не связывают эту запись с другой записью на сайте.
Как выбрать правильные метки (теги)?
Возьмем в качестве примера сайт с рецептами вкусняшек (кулинарный сайт).
Вот его рубрики: закуски, салаты, супы, вторые блюда, выпечка и пр.
А метками будут: горячие закуски, мясные закуски, мясные салаты, рыбные салаты и так далее.
При выборе метки подумайте:
- Какие другие записи схожи по теме с этой?
- Какая метка лучше всего подходит для этих записей? Что у них общего?
- Ключевое слово, которое вы использовали в качестве метки, подходит лучше других?
Используйте правильные ключевые слова. То есть популярные запросы. Вот руководство о том, как искать ключевые слова.
Оптимизируйте страницу метки
Если вы используете плагин Yoast, вы можете отдельно оптимизировать страницу метки.
Найдите похожие записи
В админке посмотрите все записи с такой же меткой и добавьте ссылки на другие рецепты. Так пользователям будет еще удобнее.
Регулярно проверяйте рубрики и метки
Структура сайта может меняться. Может, вы придумаете новые темы и рубрики — а это уже новые метки.
Поэтому регулярно просматривайте ваши метки и удаляйте те, которые не используете.
Если подумать, то решение разработчиков CMS вполне логичное — данная фишка естественным образом смотрится только в записях блогов, а в остальных случаях, вроде как, и не требуется. Однако по работе возникают разные ситуации, в том числе и необходимость указывать теги и категории для страниц WordPress. Они могут пригодиться:
Плагины для задания категорий и тегов страницам
В большинстве случаев код вставляется в page.php (или другой подходящий файл).
Post Tags and Categories for Pages
С этим модулем я знаком уже давно. Он обновлялся 10 месяцев назад и пропустил несколько последних знаковых релизов, тем не менее, при тестировании все было отлично. Не удивительно, что Post Tags and Categories for Pages имеет более 30тысяч скачиваний и почти максимальную оценку.
Процесс установки прост — находите плагин по названию среди других и активируете, настроек никаких нет. Сразу после этого в меню админки для раздела страниц появится 2 новых дополнительных пункта. Работать с ними можно точно также, как с записями.
На скриншоте видите, что расширение совместимо и с некоторыми другими, например, с Simple Tags. Также я успешно тестировал вывод тегов страниц в WordPress через the_tags в шаблоне и аналогичную фишку для категорий — the_category.
Tag Pages
В отличии от предыдущего решения это позволяет работать исключительно с WordPress тегами. Если вам нужна только такая фишка, то есть смысл ставить плагин без поддержки категорий. Из плюсов: однозначно актуальность (обновка около месяца назад) + 20тысяч загрузок и хорошая оценка.
- появление специального блока ввода меток в WP при редактировании;
- с помощью фильтра pre_get_posts все ваши публикации будут корректно выводиться в архивах, RSS фидах;
- совместим с мультисайтовой установкой;
- не делает никакие правки в БД, только использует хуки.
Add Category to Pages
У модуля меньше всего загрузок — 10тысяч, но при этом максимальная оценка. Не смотря на название, он позволяет работать не только с категориями страниц WordPress но и тегами. Вы сможете просматривать архивы со списками публикаций по определенной теме. Единственное, что смущает — последний апдейт был 3 года назад. Хотя, по сути, применяемые здесь WP функции, за это время не изменились.
Хаки добавления тегов / категорий в страницы
В сети имеется несколько нужных нам сниппетов, в которых суть плюс-минус одинаковая, поэтому я выберу лишь один найден здесь (самый детальный). Хак следует разместить в файле function.php вручную либо используйте плагин Code Snippets. Весь код состоит из двух частей.
Сначала реализуем отображение блоков меток и категорий для страниц WordPress внутри админки:
Если вам надо активировать какую-то одну сущность — удалите лишнюю строчку, оставив только вариант с post_tag или category.
Вторая часть сниппета:
if ( ! is_admin() ) < add_action( 'pre_get_posts', 'tag_cat_archives' ); >function tag_cat_archives( $wp_query ) < $my_taxonomies_array = array('post','page'); if ( $wp_query->get( 'category_name' ) || $wp_query->get( 'cat' ) ) $wp_query->set( 'post_type', $my_taxonomies_array ); if ( $wp_query->get( 'tag' ) ) $wp_query->set( 'post_type', $my_taxonomies_array ); >
Данный код нужен дабы система WordPress смогла выводить архивные списки рубрик/меток. Вы модифицируете запрос Wp_Query + используете хук pre_get_posts. При этом действия происходят только во фронтенде, т.к. мы указали условие !is_admin().
Еще в одном случае мне встречалась конструкция, где вместо задания сущностей ‘post‘,’page‘ для Wp_Query был параметр ‘any‘ (любые):
if ($wp_query->get('tag')) $wp_query->set('post_type', 'any');
Прием подойдет, когда у вас на сайте имеются и другие форматы объектов, которые хотелось бы выводить в архивах.
В целом, как видите, внедрить категории и теги в страницы Wordpress сайте не так и сложно. Выбирайте один из двух вариантов реализации: плагины проще, а хаки занимают меньше места. Если есть что дополнить по статье, пишите ниже.
Понравился пост? Подпишись на обновления блога по RSS, Email или twitter!
Оцените статью:
Категории: Возможности;
Теги: категории блога, простые плагины, сниппеты, страницы сайта, теги.
Читайте также: