DataLife Engine / Как создать произвольную таксономию (custom taxonomy) в CMS WordPress?

Как создать произвольную таксономию (custom taxonomy) в CMS WordPress?

Прежде чем публиковать в сети новую версию CMS WordPress 3.1, разработчики уделили огромное внимание базовой функции создания произвольных таксономий (custom taxonomies). Данная функция в ее новом и доработанном облике позволит Вам с легкостью создать собственную таксономию для Вашего проекта, который создан под управлением CMS WordPress.

Давайте попробуем подробно рассмотреть пример создания произвольной таксономии (custom taxonomy) и научимся расширять функционал, иерархию и навигационные возможности сайтов, разработанных на CMS WordPress. После прочтения данного урока Вы сможете с легкостью вставлять различные таксономии в разрабатываемые темы и плагины (дополнения).

Таксономия (taxonomy) в CMS WordPress

Стандартная таксономия CMS WordPress позволяет управлять большим количеством публикаций (контентом, наполнением) логическим, хорошо организованным способом. Категории в WordPress настроены как иерархическая таксономия, а метки настроены как многогранная таксономия.

Стандартная (встроенная) таксономия

CMS WordPress содержит в себе четыре стандартных таксономии:

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

Произвольная таксономия (custom taxonomy)

Разработчики CMS WordPress предлагают Вам новый способ группировки информации, дав Вам возможность создать персональную произвольную таксономию. Основной функцией, которой Вам необходимо уметь пользоваться и понимать ее назначение, является функция — register_taxonomy(). Все, что Вы должны сделать – это понять, как формировать настраиваемые параметры таксономии, чтобы она удовлетворяла Вашим потребностям.

Пример использования произвольных таксономий (custom taxonomies)

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

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

Создание произвольной таксономии

CMS WordPress позволяет нам создать (зарегистрировать) новую таксономию с помощью функции register_taxonomy(). Давайте посмотрим, что получится, если создать новую произвольную таксономию и дать ей название «Города». (Нажмите на изображение)

Произвольная таксономия в WordPress

Данная таксономия работает точно так же, как и стандартная таксономия категорий CMS WordPress. После регистрации новой таксономии Вы получите возможность организовать и распределить публикации сайта по местоположению. При добавлении новых публикаций, в правой колонке Вы увидите новый блок (аналогичный блоку категорий) под названием «Города».

Давайте использовать вновь созданную таксономию «Города» в качестве опорной точки, которая поможет узнать больше о работе с функциями таксономии.

Создание шаблона таксономии для текущей темы

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

Давайте использовать шаблон taxonomy-town.php, чтобы стилизовать вывод публикаций для данной таксономии. Файл шаблона может выглядеть любым образом, на Ваше усмотрение, но главной особенностью этого файла является то, что после строки

< ?php get_header();?>

обязательно должна быть строка

< ?php
$term = get_term_by( ‘slug’, get_query_var( ‘term’ ), get_query_var( ‘taxonomy’ ) );
? >

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

Данный объект мы можем использовать для того, чтобы отображать информацию о текущем элементе таксономии (название, описание и т.д.) в шаблоне taxonomy-town.php.

Использование условий таксономии

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

is_tax ()

Если показана страница архива любой таксономии.

is_tax (‘town’)

Если показана страница архива определенной таксономии (в нашем случае «Город»)

is_tax (‘town’, ‘kiev’)

Если показана страница архива определенной таксономии с определенным элементом («Город», «Киев»)

is_tax (‘town’, array(‘moscow’, ‘orel’))

Если показана страница архива определенной таксономии с одним или другим из определенных перечисленных элементов («Город», «Киев» или «Харьков»)

taxonomy_exists()

Если таксономия существует (зарегистрирована)

Работа с основными функциями таксономий

Разработчиками CMS WordPress предусмотрено много стандартных функций для удобства работы с таксономиями. Давайте познакомимся с некоторыми практическими примерами использования данных функций.

Отображение списка элементов таксономии (в нашем случае городов)

Большинство навигационных систем в сети Интернет начинается со списка ссылок. Вы можете генерировать список ссылок на страницы архивов таксономий, используя функцию wp_list_categories(). Эта функция имеет множество гибких настроек и может легко интегрироваться в дизайн при разработке темы для CMS WordPress.

< ?php
$towns_list = wp_list_categories( array(
‘taxonomy’ => ‘town’,
‘orderby’ => ‘name’,
‘show_count’ => 0,
‘pad_counts’ => 0,
‘hierarchical’ => 1,
‘echo’ => 0,
‘title_li’ => ‘Города’
) );
if ( $towns_list )
echo ‘<ul class=»towns-list»>’ . $towns_list . ‘</ul>’;
? >

Создание облака элементов для таксономии

Облако элементов предоставляет отличный способ пользователям просмотреть основные элементы навигации сайта. Функция wp_tag_cloud() легко создает облако элементов произвольной таксономии.

< ?php
$towns_cloud = wp_tag_cloud( array(
‘taxonomy’ => ‘town’,
‘echo’ => 0
) );
if ( $towns_cloud ): ? >
<h2>Города</h2>
<div class=»towns-cloud»>
< ?php echo $towns_cloud; ? >
</div>
< ?php endif; ? >

Отображение всех элементов таксономии, разделенных запятой

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

< ?php
$terms = get_terms( «town», array(
‘hide_empty’ => 0,
) );
$towns = array();
if ( count($terms) > 0 ):
foreach ( $terms as $term )
$towns[] = $term->name;
$towns_str = implode(‘, ‘, $towns);
? >
<p>< ?php echo $towns_str; ? > </p>
< ?php endif; ? >

Данный код позволит вывести на сайте все элементы таксономии, разделенные запятой.

В Заключении

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

2-12-2018,
Вернуться назад