Таксономии wordpress что это

Таксономии

Начну с того, что таксономии нужны для группировки постов.

Каким образом? Ну возьмём к примеру хэштеги в инстаграм — когда вы постите фото и присваиваете ему теги — это как раз и есть та самая группировка, о которой я говорю. По умолчанию WordPress тоже поддерживает теги для постов, а ещё рубрики. И их можно объединить одним словом — таксономии.

В WP есть стандартные таксономии, а также те, которые разработчики и пользователи создают сами.

1. Стандартные таксономии в WordPress

Рубрики и метки

Что-то мне подсказывает, что если вы читаете этот пост, то вы уже представляете, что такое рубрики (категории) и метки (теги), что у рубрик есть иерархия, у меток нет и так далее.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

А теперь мне нужно донести одну важную мысль.

В WordPress есть своя группа функций для работы с рубриками и отдельная группа функций для работы с метками. Наверняка с какими-то из них вы уже знакомы.

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

Рубрики ссылок

Если рубрики и метки в WordPress были нужны для группировки записей, то данная таксономия, как понятно из названия — для группировки ссылок.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Если вы недавно установили WP, то вы не найдёте их у себя в админке. Дело в том, что с версии 3.5 ссылки по умолчанию сделали отключенными. Но не удалили — вставьте следующий код в файл functions.php вашей темы и ссылки вновь появятся у вас в админке. Вполне возможно, что вы найдете им применение.

Форматы постов

Форматы на самом деле с трудом можно назвать таксономией, но фактически это так. На моём блоге им посвящён отдельный пост.

2. Пользовательские таксономии

И вот в один прекрасный день наступает момент, когда нам начинает не хватать стандартных рубрик и меток для группировки записей…

Чуть подробнее про регистрацию таксономии

Техническую сторону регистрации я подробно описал в статье про функцию register_taxonomy(). Сейчас же мы рассмотрим несколько моментов.

Пример: вы зарегистрировали тип записей — Автомобили, и их нужно группировать скажем по марке, стране и по объему двигателя (хотя объем лучше затолкать в произвольные поля).

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Как присваивать таксономии к различным типам записей

Ну во-первых, если вы сами регали таксономию через код, то конечно же надо было сразу указать все типы записей, для которых будет использована группировка по этой таксономии.

Если же изменение параметров регистрирующей функции не в вашей власти (возьмем те же рубрики и метки), тогда вы можете и должны использовать register_taxonomy_for_object_type().

Допустим вы взяли и захотели, чтобы в рубрику можно было добавлять не только записи но и страницы! Тогда код будет следующим:

Другие примеры смотрите в описании функции, ссылку на которое я дал вам выше.

Вывод таксономий в виде списка

Вы знакомы с функцией wp_list_categories()? Если нет, то наверняка видели, как на блогах рубрики выводятся в столбик в виде списка (иногда еще справа в скобках указывается количество постов в рубрике).

Самое интересное, что функция wp_list_categories() позволяет выводить элементы любой таксономии, достаточно лишь указать название таксономии в параметрах функции.

Где же брать название таксономии?

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Более сложный, но в то же время более удобный и настраиваемый вариант — функция get_terms(). Если бы мне предложили выбрать любимую функцию из кодекса, я бы выбрал её — она реально потрясающая.

Вывод постов из таксономии

3. Плагины для работы с таксономиями

Сам я придерживаюсь мнения, что в данном случае лучше обойтись без лишних плагинов, тем не менее вот некоторые бесплатные варианты:

Некоторые из функций для работы с таксономиями

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Источник

Создание таксономии WordPress

Содержание

1. Что такое таксономия WordPress?

Перед тем как, что то создавать, нужно разобраться с базовыми понятием таксономии. Что это такое?

В WordPress под таксономией понимается некое абстрактное пространство, с помощью которого происходит группировка записей(постов) по определенному признаку.

К примеру существует стандартная таксономия «Рубрки» на англ. версии WP «Category». С ее помощью мы можем сгруппировать записи по признакам: новости, статьи, полезная информация и.т.п. По простому мы называем это все «категориями». Но на самом деле это таксономия «Рубрики».

«Метки» это тоже таксономия на англ. версии «tags», только элементы этой таксономии не имеют наследования(родителей).

2. Типы таксономий.

Существует два типа таксономий:
1. Древовидные(иерархический) — имеет вложенность, родительские и дочернии элементы. Пример: Рубрки(category).
2. Линейные (плоские)— не имеет вложенности. Пример: Метки(tags).

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

3. Как создать таксономию.

И так. Как же создать кастомную(произвольную) таксономию в WordPress. Существует два способа:

Способ первый. С помощью функции register_taxonomy().
Функция register_taxonomy() — регистрирует кастомную(произвольную) таксономию.

Пример. Создадим таксономию mycat для типа записей(post type) «записи» или по простому для постов.

Источник

Таксономии

Начну с того, что таксономии нужны для группировки постов.

Каким образом? Ну возьмём к примеру хэштеги в инстаграм — когда вы постите фото и присваиваете ему теги — это как раз и есть та самая группировка, о которой я говорю. По умолчанию WordPress тоже поддерживает теги для постов, а ещё рубрики. И их можно объединить одним словом — таксономии.

В WP есть стандартные таксономии, а также те, которые разработчики и пользователи создают сами.

1. Стандартные таксономии в WordPress

Рубрики и метки

Что-то мне подсказывает, что если вы читаете этот пост, то вы уже представляете, что такое рубрики (категории) и метки (теги), что у рубрик есть иерархия, у меток нет и так далее.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

А теперь мне нужно донести одну важную мысль.

В WordPress есть своя группа функций для работы с рубриками и отдельная группа функций для работы с метками. Наверняка с какими-то из них вы уже знакомы.

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

Рубрики ссылок

Если рубрики и метки в WordPress были нужны для группировки записей, то данная таксономия, как понятно из названия — для группировки ссылок.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Если вы недавно установили WP, то вы не найдёте их у себя в админке. Дело в том, что с версии 3.5 ссылки по умолчанию сделали отключенными. Но не удалили — вставьте следующий код в файл functions.php вашей темы и ссылки вновь появятся у вас в админке. Вполне возможно, что вы найдете им применение.

Форматы постов

Форматы на самом деле с трудом можно назвать таксономией, но фактически это так. На моём блоге им посвящён отдельный пост.

2. Пользовательские таксономии

И вот в один прекрасный день наступает момент, когда нам начинает не хватать стандартных рубрик и меток для группировки записей…

Чуть подробнее про регистрацию таксономии

Техническую сторону регистрации я подробно описал в статье про функцию register_taxonomy(). Сейчас же мы рассмотрим несколько моментов.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Как присваивать таксономии к различным типам записей

Ну во-первых, если вы сами регали таксономию через код, то конечно же надо было сразу указать все типы записей, для которых будет использована группировка по этой таксономии.

Если же изменение параметров регистрирующей функции не в вашей власти (возьмем те же рубрики и метки), тогда вы можете и должны использовать register_taxonomy_for_object_type().

Допустим вы взяли и захотели, чтобы в рубрику можно было добавлять не только записи но и страницы! Тогда код будет следующим:

Другие примеры смотрите в описании функции, ссылку на которое я дал вам выше.

Вывод таксономий в виде списка

Вы знакомы с функцией wp_list_categories()? Если нет, то наверняка видели, как на блогах рубрики выводятся в столбик в виде списка (иногда еще справа в скобках указывается количество постов в рубрике).

Самое интересное, что функция wp_list_categories() позволяет выводить элементы любой таксономии, достаточно лишь указать название таксономии в параметрах функции.

Где же брать название таксономии?

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Более сложный, но в то же время более удобный и настраиваемый вариант — функция get_terms(). Если бы мне предложили выбрать любимую функцию из кодекса, я бы выбрал её — она реально потрясающая.

Вывод постов из таксономии

3. Плагины для работы с таксономиями

Сам я придерживаюсь мнения, что в данном случае лучше обойтись без лишних плагинов, тем не менее вот некоторые бесплатные варианты:

Источник

Как добавить произвольную таксономию в WordPress? Код для вывода записей и терминов таксономии.

Таксономии дают возможность веб разработчикам создавать более сложные и структурированные проекты на WordPress. По своему принципу таксономия напоминает каталог, в котором по группам расположены определенные виды записей.

Стоит отметить, что таксономия – это как общий элемент структуризации данных, при работе с постами вы будете работать с элементами таксономии, которые называют «terms» («термины»). Давайте наглядно разберем пример. В админке WordPress, есть раздел «Рубрики» — это и есть таксономия, а созданные в нем элементы, например «Квартиры» — это термины, непосредственно к которым вы и привязываете ваши записи, а в последующем выводите их на сайте.

Все таксономии разделяют на два типа: древовидные и линейные.

Древовидные это те, которые позволяют создавать дочерние подрубрики к основной рубрике. В итоге, такая структура может иметь вид: «Квартиры» — «Однокомнатные». Пример древовидных таксономий – это рубрики постов.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Линейные – это независимые друг от друга термины. Ярким примером линейных таксономий в WordPress являются метки.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Таксономии WordPress «из коробки»

По дефолту в данной CMS есть четыре типа таксономий.

Как добавить свою таксономию в WordPress?

Для создания кастомных таксономий в WordPress используют функцию — register_taxonomy(). Если вы не хотите разбираться с ее опциями, то можете использовать плагин, например – «Custom Post Type UI». Но, если вы планируете разрабатывать сайты на этом движке, я рекомендую вам разобраться с работой таксономий, так как в любом случае вы будете использовать их на практике при разработке коммерческих проектов.

Для того чтобы добавить свою таксономию, вам нужно будет внести код в файл function.php вашей темы используемой на сайте. Перед тем, как вносить изменения сделайте бэкап самого файла, или же бэкап сайта! Код добавляют внизу файла function.php, или же создают файл php формата в папке inc, после чего подключают его в файле function.php.

Вот пример кода, который добавит таксономию «Квартиры» на ваш сайт.

Первый блок опций – это текстовые переводы пунктов меню и заголовков. Все что ниже – это настройка дополнительных параметров. Ниже описание основных настроек.

Важный момент! Имя таксономии должно быть уникальным и не совпадать с названием зарезервированных WordPress таксономий, а также публичных и частных переменных.

Итак, для того, чтобы вам добавить свою таксономию вам нужно переименовать «flat», на название вашей таксономии, а также внести правки по тестовым переводам в админке.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Для каких задач используются кастомные таксономии?

Основная цель применения кастомных таксономий в WordPress – это структуризация и удобная работа с большим объемом данных. Давайте представим ситуацию, что у вас свое агентство по сдаче жилья в аренду. Каждую запись о квартире вам нужно привязывать к различным параметрам поиска, который будет осуществлять пользователь на вашем сайте. Это могут быть следующие опции: количество комнат, район, ценовой сегмент и другие.

И тут у вас есть два пути для сегментации.

Вот как выглядит вид выбора таксономии при редактировании записи.

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Пример запроса по поиску недорогой однокомнатной квартиры возле центра города.

Если у вас под квартиры создан отдельный тип записи, например «flat», то в коде выше меняем значение параметра ‘post_type’, вместо ‘post’ указываем ‘flat’.

Как задать шаблон для таксономии в WordPress?

Иногда стоит задача интегрировать другой дизайн для страницы таксономии, например, сделать вывод в виде сетки, или же вывести дополнительные произвольные поля для записей таксономии, например количество комнат или же локацию для квартиры.

WordPress отбирает шаблон для страницы по определенной иерархии. Вы можете задать отдельный шаблон под каждую таксономию, или же один шаблон для всех таксономий.

Вот те виды шаблонов таксономий, которые вы можете использовать при разработке сайтов.

Для примера в моем случае можно создать шаблон taxonomy-flat.php в таком случае шаблон будет работать для всех терминов таксономии «flat».

Шаблон загружаете в основную папку вашей темы, он будет использовать автоматически, при условии, что вы все правильно сделали.

В данном примере кода используется функция get_term_by(), она включает в себя все данные связанные с таксономией.

Использование условных операторов для вывода записей привязанных к определенным таксономиям

Условные операторы часто используются для вывода контента на страницах с определенными параметрами. Давайте рассмотрим подробнее, как выполняются условия.

Теперь давайте рассмотрим несколько примеров по использованию функций для вывода таксономий и связанных с ними постов на сайте.

Как вывести список терминов таксономии в WordPress?

Для этих целей используется функция — wp_list_categories(), которая имеет много опций для настройки вывода терминов.

Как вывести посты для выбранной таксономии в WordPress?

Для того чтобы выводить записи из отдельных таксономий используется классы: WP_Query или же tax_query, которые за счет параметров позволяют очень гибко выводить необходимые посты на сайте.

На примере выше мы получим последние 10 записей, которые принадлежат таксономии «flat», c термином «cheap».

Также для этой задачи можно использовать функции: get_terms() и get_term_by().

Как вывести заголовок текущей таксономии?

Для этого используется функция — single_term_title().

Как получить id таксономии?

В WordPress для этого существует специальная функция, которая называется: get_term_by().

Она принимает следующие параметры:

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

Источник

Таксономии в WordPress

Что такое таксономии в WordPress? Кто не знает, и тем кто думает, что знает о таксономиях все, будет полезно прочитать эту статью. Я подробно разберу что скрывается под этим странным словом, что оно значит в WordPress и как таксономии устроены. Думаю, в этом разборе что-то полезное найдет каждый.

Читайте также, как устроенны записи в WordPress
Читайте также, как устроенны метаполя в WordPress

О таксономиях

Образно, таксономии можно сравнить с папками на компьютере: куда складываются файлы. Заходим в папку, видим список файлов. В WordPress аналогично: заходим в таксономию (рубрику), видим список записей в ней.

Типы таксономий

Отличия. Элементы древовидных такс. могут быть родительскими и дочерними, т.е. одни элементы как бы вложены в другие. А элементы плоских такс. всегда сами по себе, т.е. все они находятся на одном уровне, а значит не зависят друг от друга.

Схематически это выглядит как-то так:

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это меню

Базовые таксономии WordPress

По умолчанию в WordPress существует пять таксономии:

Создание своих таксономий

Создается таксономия с помощью функции register_taxonomy() или соответствующего плагина, например, «Custom Post Type UI». При этом, как я уже говорил, в базу данных ничего не добавляется, а создается только описание таксономии и её свойств в глобальной переменной PHP и в правилах ЧПУ. Как только был создан хоть один элемент таксономии, в БД появляется запись о новом термине, а к нему уже можно прикрепить запись.

При создании таксономии, ей можно указать самые разные свойства (опции), например:

тип: древовидная или плоская.

тип записи для которой создается такса, тогда при редактировании записи в админке появится блок, где можно добавить запись в таксономию (связать запись с термином). Например таким блоком является блок рубрик при редактировании записи.

как будет выглядеть ссылка на элемент таксономии. Эта «хрень» называется ЧПУ (человеко-понятный УРЛ).

можно создать скрытую таксономию, тогда её нигде не будет видно, в частности в админке, но её можно использовать как-то нестандартно, чтобы группировать записи или делать что-то еще. Так например, плагины галерей связывают галереи или отдельные картинки.

Почему нужно создавать произвольные таксономии?

Если везде использовать Рубрики, то довольно быстро ваш код превратиться в кашу. В результате расширять функционал сайта будет все сложнее, а скорость работы будет все медленнее.

Так может выглядеть запрос, когда нужно получить дешевые дома в Воронеже:

А если тоже самое сделать с рубриками, то код получится больше, будет менее понятный и быстрый.

Структура: таблицы таксономий в БД

В базе данных WordPress за таксономии отвечают, не много не мало, четыре таблицы. Разберем каждую.

wp_terms

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

term_id Уникальный ID термина (ID строки таблицы). name Название термина, пр: «Авторские функции». slug Ярлык (слаг) термина, пр: «avtorskie-funkcii». term_group Устарелое поле, больше не используется.

wp_term_taxonomy

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

К слову, на этом сайте таких сдвоенных терминов оказалось всего 12 из нескольких сотен существующих, что еще раз доказывает несостоятельность прежней логики такс (было столько разветвлений в коде и всяких JOIN в sql запросах, только для того, чтобы не писать 12 строк в таблицу БД).

wp_term_relationships

Эта таблица содержит всего три поля:

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Содержит порядок в котором были указаны термины, при прикреплении их к записи. Например, при редактировании записи мы указали ей 2 рубрики и 3 метки, вот в каком порядке мы их видим (они передались в POST запросе), такие значения сюда будут записаны: 1, 2 для рубрик, и 1, 2, 3 для меток.

wp_termmeta

В wp_termmeta принято сохранять любые дополнительные данные термина, например это могут быть СЕО поля: заголовок, описание и что угодно еще.

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

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

До версии 4.4 у терминов не было метаполей и их записывали в опции, жуткое было время. Для тех времен я делал так.

Связь всех таблиц

Для создания своих SQL запросов, когда базовые функции не справляются или справляются не так как хотелось бы, нужно знать как таблицы связываются.

Давайте посмотрим SQL запрос, который свяжет все таблицы с помощью JOIN. Запрос ниже вернет все записи типа post и данные к какому термину прикреплена каждая запись:

Таксономии wordpress что это. Смотреть фото Таксономии wordpress что это. Смотреть картинку Таксономии wordpress что это. Картинка про Таксономии wordpress что это. Фото Таксономии wordpress что это

Создавая подобные запросы и объединяя таблицы с помощью JOIN, вы быстро и хорошо разберетесь в зависимостях между таблицами таксономий.

Функции таксономий WordPress

Полный список смотрите по этой ссылке, а вот некоторые популярны функции:

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

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

Источник

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

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