Как работают архивы таксономий, тегов, категорий и пользовательских типов таксономий.

УрокиКомментариев нет

Большинство пользователей WordPress знакомы с тегами и категориями и с тем, как их использовать для организации записей в их блоге. Если вы применяете пользовательские типы постов (записей) в WordPress, неплохо бы вам организовать их по аналогии с категориями и тегами. Категории и теги — это примеры таксономий, и WordPress позволяет вам создать их так много, сколько пожелаете. Эти пользовательские таксономии работают так же, как и категории и теги, но они отдельные.

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

Терминология

Прежде, чем продолжить, давайте определимся с терминологией. Таксономия — это тип контента в WordPress, используемый в основном для организации контента любого другого типа. Все знакомы с двумя встроенными таксономиями: категории и теги. Мы обычно называем отдельную запись тега — «тег», хотя, если быть точным, мы должны относить его к «термину» в таксономии «тег». А вот в случае пользовательских таксономий мы почти всегда называем их «терминами».

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

Иллюстрация 1: Малая часть “Иерархии шаблонов WordPress”.

Иллюстрация 1: Малая часть “Иерархии шаблонов WordPress”.

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

Как работают архивы таксономий тегов, категорий и пользовательских типов таксономий.

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

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

Большинство тем имеют шаблон archive.php, который используется для архивов категорий и тегов, а также для архивов даты и автора. Вы можете добавить файл шаблона для управления архивами категорий и тегов отдельно. Эти файлы будут иметь названия category.php или tag.php соответственно. Вы также можете создать шаблоны для конкретной категории или тега, используя ID или слаг (уникальную ссылку — прим. перев.) категории или тега. Например, тег с ID = 7 использует сначала tag-7.php, если он существует, а если нет, то tag.php или archive.php. Тег со слагом «avocado» отображается с помощью шаблона tag-avocado.php.

Единственное, что надо помнить, это что шаблон со слагом в названии будет выше по иерархии, чем шаблон с ID в названии. Так, если тег со слагом «avocado» имеет ID = 7, то tag-avocado.php, если существует, будет использоваться вместо tag-7.php.

Иерархия шаблонов для отображения пользовательских таксономий слегка другая, так как существуют шаблоны для всех таксономий, для конкретных таксономий и для определенных терминов в конкретной таксономии. Представьте себе, что у вас есть две таксономии «фрукты» и «овощи», таксономия «фрукты» имеет два термина — «яблоки» и «апельсины», а «овощи» — «морковь» и «сельдерей». Добавим три шаблона в тему нашего сайта: taxonomy.php, taxonomy-fruits.php и taxonomy-vegetables-carrots.php.

Для терминов в таксономии «фрукты» все архивы будут сгенерированы с использованием taxonomy-fruits.php, так как не существует шаблона для конкретного фрукта. С другой стороны, архив термина «морковь» в таксономии «овощи» будет сгенерирован с помощью taxonomy-vegetables-carrots.php. Так как не существует шаблона taxonomy-vegetables.php, все другие термины в «овощах» генерируются с использованием taxonomy.php.

Использование условных тегов

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

WordPress предоставляет условные функции для определения того, что сейчас отображается, категория, тег или пользовательская таксономия. Для определения архива категории используется is_category(), для тегов — is_tag(), для пользовательских таксономий — is_tax(). is_tag() и is_category() также могут проверять на отображение конкретных категорий или тегов, используя слаг или ID. Например:

Для пользовательских таксономий функция is_tax()может использоваться для проверки, отображается ли любая таксономия, конкретная таксономия или конкретный термин таксономии. Например:

Статьи из раздела:

  1. Создание пользовательских таксономий
  2. Использование WP_Query с пользовательскими таксономиями
  3. Добавление пользовательских типов записей к архивам категорий и тегов.
  4. Делаем архивы категорий или таксономии иерархическими
  5. Создание пользовательской целевой страницы для архивов таксономий

 


Будь первым кто прокомментирует статью.

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

Войти с помощью: