Сышышь ты, выходи сюда,
поговорим !

Главная Новости

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

Опубликовано: 08.06.2018

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

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

С математической точки зрения таксономия это древообразное построение при классификации набора каких-то объектов. По умолчанию в WordPress реализовано три классификации: категории записей (post categories), метки (тэги) записей (post tags) и категории ссылок (link categories). Но WordPress – система очень гибкая, и таксономии по умолчанию можно игнорировать, заменяя их своими классами.



Таксономии в WordPress присваиваются определенным типам записей. Такая wordpress таксономия может фильтровать записи и выводить на странице запроса таксономии только те, которые прописаны в функции (те, которые соответствуют определенной таксономии).

Вы можете создать любую произвольную таксономию, например, для произвольных записей, и реализовать на ее основе фильтрацию этих записей. Например, если произвольные записи — это «брюки», то произвольная таксономия определяет размер этих брюк, то есть – область использования. Вы можете теперь отсортировать брюки по размеру, или сразу выбрать все брюки с конкретным размером.


Произвольные типы записей. Серия №1. Создаем записи, таксономии, поля

По умолчанию в любом шаблоне темы WordPress уже существует встроенная стандартная wp таксономия . Встроенные таксономии — это:

Категории WordPress (category), которые обозначаются слагом ‘category’. Метки (тэги) (tag), которые обозначаются слагом ‘post_tag’. Ссылочные категории (link category), которые обозначаются слагом ‘link_category’.
Термы (wp_terms)
Значение Описание терма
term_id Уникальный идентификатор
name Имя
slug Имя для применения в URL-адресе
term_group Группировка подобных термов

Отдельно термы не имеют никакого функционального назначения.

Таксономия термов (wp_term_taxonomy)
Значение Описание
term_taxonomy_id Уникальный идентификатор таксономии терма
term_id Идентификатор терма, который относится к таксономии (связан по значению wp_terms.term_id)
taxonomy Стандартная таксономия
parent Родительский терм для поддержки иерархии термов в таксономии
count Количество объектов, которые относятся к таксономии.

Терм может работать только в контексте с таксономией, которая задается в таблице wp_term_taxonomy.

Объекты, термы и таксономим (wp_term_relationships)
Значение Описание
object_id Идентификатор объекта, который относится к таксономии
term_taxonomy_id Идентификатор таксономии терма, который относится объекту
term_order Сортировка термов

В WordPress по умолчанию существует 3 таксономии. Ну, а что такое таксономия wordpress , вы уже поняли. Ниже вы видите краткое описание для таксономий.

Таксономии для WordPress
Таксономия Объект Создание иерархии
category Запись Да
post_tag Запись
link_category Ссылка

Если вы хотите добавить свои произвольные таксономии, то вам необходимо использовать функцию register_taxonomy() – она назначается в файле шаблона functions.php Вордпресс. Произвольная таксономия (Custom Taxonomy) создается чаще всего плагинами, которые самостоятельно встраивают эту функцию в шаблон. Вручную создать какую-то таксономию не каждый сможет – для этого нужно знать основы веб-программирования и устройство CMS WordPress, в частности

Терм таксономии (Term) – элемент, который относится к отдельной таксономии, и определяет значения или значение таксономии. Таким образом, одна таксономия может состоять из нескольких разных термов, и одна произвольная запись может ассоциироваться с несколькими термами одновременно. Так, стандартная таксономия «Категории» может включать в себя несколько термов с названиями «seo», «web», «commerce», которые означают названия категорий.

Иерархия в таксономии – это древовидная таксономия вордпресс , термы которой имеют потомков в виде других термов этой ветки таксономии. В качестве примера иерархической таксономии можно привести стандартную таксономию «Категории», которая всегда назначается стандартным записям.

Неиерархическая wordpress таксономия означает, что ее термы не имеют потомков. В качестве примера неиерархической таксономии можно показать стандартную таксономию «Метки», которая также присваивается стандартным записям.

Архив терма – это архивная страница archive.php, на которой отображаются все записи, которые относятся конкретному терму конкретной таксономии. Вызвать архив всех термов одной таксономии не получится, чтобы на странице отображались сразу все записи всех термов таксономии – такая функция в WordPress не предусмотрена.

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

Конкретный пример создания новых таксономий для медиафайлов в WordPress

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

Сначала откройте файл functions.php шаблона вашей темы. Можно вносить изменения прямо в админпанели, в редакторе WordPress. Лучше для определения таксономий создать плагин, потому что, поменяв шаблон темы, плагин сохранится и вам не нужно будет прописывать таксономии заново — файл functions.php останется неизменным.

Подготовка к созданию таксономии для медиафайлов

На этом этапе вам нужно отредактировать страницу медиафайлов – стандартный шаблон этой страницы беден, в нем не назначены ни метки записи (медиа), ни рубрики, ни таксономии.

function wptp_add_categorxes_to_attachicents() ( cegister_taxonoroy_for_object type( 'category', 'attachment' ); add_action( 'init' , 'wptp_add_categorie»_to_attachments' };

По умолчанию в WordPress не реализован выбор уже созданных рубрик и меток, но это положение можно изменить.

Рубрики медиафайлов

Выбор рубрик нужно начинать с включения их для прикрепленных файлов. Делается это, как я уже объяснял, функцией register_taxonomy_for_object_type(). Просто добавьте в файл плагина или functions.php шаблона темы такой php код:

// apply tags to attachments function wptp_add_tags_to_attachments () { register_taxonomy_for_object_typo('post_tag', attachment' ); } add_action( 'init' , 'wptp_add_tags_to_attachments' );

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

// register new taxonomy which applies to attachments function wptp_add_locatlon_taxonomy() { §labels = array( name' =>'Locations', singular_name'=>'Location', search_itcms '=>'Search Locations', all_ltems'=>'All Locations', parent_item'=>'Parent Location', parent_item_colon'=>'Parent Location:', edit_item'=>'Edit Location', update_item' =>'Update Location', add_new_item'=>'Add New Location', new_item_name'=>'New Location Name', menu_name' =>'Location', 'labels' => $labels, 'hierarchical' => true, 'quety_vat' => 'true', 'rewrite' => 'true', 'show_admin_column' => 'true',); register taxonomy( 'location', 'attachment', $args ); add_action( 'init', 'wptp_add_location_taxonomy' );

Метки медиафайлов

Если вы предпочитаете оперировать с метками, или и с рубриками и метками, то, чтобы их создать, используйте ту же функцию. Добавьте в файл functions.php такой код:

// apply tags to attachments function wptp_add_tags_to_ attachments () { register _taxonomy_for object_type( 'post_tag', attachments' ); } add_action ( 'init' , 'wptp_add_tags_to_ attachments' );

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

Также это действие добавит колонку с метками и в библиотеке медиафайлов.

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

Если вдруг существующие метки и рубрики не подходят для присвоения медиафайлам, то вы можете создать и зарегистрировать свою собственную таксономию. Для этого также используется параметр ‘attachment’, который применяется к типу записи.

К примеру, вам нужно сделать иерархическую таксономию под названием «Locations», и ваша задача — использовать ее для вывода всех изображений и классификации этих медиафайлов.

Использовав функцию register_taxonomy(), можно добавить в файл темы такой php код:

// register new taxonomy which applies to attachments function wptp_add_locatlon_taxonomy() { §labels = array( name' =>'Locations', singular_name'=>'Location', search_itcms '=>'Search Locations', all_ltems'=>'All Locations', parent_item'=>'Parent Location', parent_item_colon'=>'Parent Location:', edit_item'=>'Edit Location', update_item' =>'Update Location', add_new_item'=>'Add New Location', new_item_name'=>'New Location Name', menu_name' =>'Location', 'labels' => $labels, 'hierarchical' => true, 'quety_vat' => 'true', 'rewrite' => 'true', 'show_admin_column' => 'true',); register taxonomy( 'location', 'attachment', $args ); add_action( 'init', 'wptp_add_location_taxonomy' );

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

А если возникла необходимость использовать таксономию для другого типа контента? Тогда вам нужно заменить в функции register_taxonomy() параметр ‘attachment’ на массив, содержащий все сокращения типов контента, которые вам нужно добавить:

register taxonomy( 'location', array ( 'attachment', 'post' ), $args );

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

Так как в коде был аргумент ‘show_admin_column’, он тоже будет выводиться на странице библиотеки медиафайлов:

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

rss