Как создать произвольную таксономию (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(). Давайте посмотрим, что получится, если создать новую произвольную таксономию и дать ей название «Города». (Нажмите на изображение)
Данная таксономия работает точно так же, как и стандартная таксономия категорий 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(), содержит следующие детали о термине:
- ID
- name
- slug
- group
- taxonomy
- taxonomy ID
- description
- parent
- count
Данный объект мы можем использовать для того, чтобы отображать информацию о текущем элементе таксономии (название, описание и т.д.) в шаблоне 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.
