Добавляем рубрику, таксономию и метки для файлов WordPress
Опубликовано: 01.09.2018
Вас не раздражает, что WordPress не позволяет присвоить рубрику или метки вашим изображениям или загруженным файлам?
Представьте, как это могло бы быть полезно: вы могли бы создать динамические галереи изображений из отдельных мест или отдельных типов (пейзажи, абстракция), или вы могли бы создать страницы-списки для сайтов с большим количеством прикрепленных PDF файлов.
| Скачать исходники |
Вывод названия и описания рубрик на WordPress - Константин Хмелев
Хорошая новость: это на удивление просто сделать! Вы сможете добавить рубрики и метки к вашим прикрепленным файлам, добавив простой код в файл functions.php вашей темы или плагин, вы также сможете создать свою таксономию, которая будет применима к прикрепленным файлам.
В этом руководстве я покажу вам, как это сделать и очень быстро — это займет не больше 10 минут !
Что такое таксономия?
Как сказано в :
Таксономия — одно из слов, которые большинство людей никогда не слышат и не используют. В принципе, таксономия — способ группировать вещи .
Например, есть набор разных видов животных. Я могу группировать их вместе по разным характеристикам и затем присвоить этим группам имена. С этим большинство сталкивается на школьных уроках биологии и это не что иное, как таксономия.
В WordPress "таксономия" — механизм группирования для некоторых записей (или ссылок, или типов постов).
Что вам нужно, чтобы применить это руководство
Вам понадобится:
Установленный WordPress. Доступ к файлу functions.php вашей темы или FTP доступ, чтобы вы могли создать или загрузить плагин. Текстовый редактор.Обратите внимание : Я рекомендую для добавления этих возможностей на сайте создавать плагин , так как он не зависит от темы и может понадобиться вам, если вы решите сменить тему в будущем. Конечно, добавление кода в файл темы тоже будет работать.
Подготовка: Редактирование медиа
Страница редактирования медиафайлов сама по себе достаточно бедна, там нет рубрик, меток или таксономий:
По умолчанию у вас нет возможности выбрать какую-то существующую рубрику или метку — но вы можете это изменить.
Применение рубрик
Первый шаг — включение рубрики для прикрепленных файлов. Вы можете сделать это с помощью функции register_taxonomy_for_object_type() . В файл плагина или файл functions.php вашей темы добавьте следующее:
function wptp_add_categories_to_attachments() { register_taxonomy_for_object_type( 'category', 'attachment' ); } add_action( 'init' , 'wptp_add_categories_to_attachments' );Сохраните файл и обновите страницу редактирования медиа. Вы увидите, что рубрики теперь доступны:
Также колонка для рубрик появится в медиа-библиотеке, как видите:
Применение меток
Если вы предпочитаете работать с метками, а не с рубриками (или и с тем, и с другим), вы можете использовать ту же функцию. Добавьте следующий код в файл темы или плагина:
// apply tags to attachments function wptp_add_tags_to_attachments() { register_taxonomy_for_object_type( 'post_tag', 'attachment' ); } add_action( 'init' , 'wptp_add_tags_to_attachments' );Подобно предыдущему варианту, это добавит метки на страницу редактирования медиафайлов:
Это также добавит колонку меток в медиа-библиотеку:
Копнем глубже: своя таксономия
Может случиться, что вы не захотите работать с существующими рубриками или метками при классификации ваших медиафайлов, в таком случае вы можете зарегистрировать свою таксономию и применить ее к типу записи ‘ attachment ’.
В примере выше я добавил к моему изображению метку, чтобы показать, откуда оно было взято. Допустим, я хочу создать иерархическую таксономию под названием ‘ Locations ’, которую я смогу использовать для классификации и отображения всех моих изображений.
Вы можете сделать это с помощью функции register_taxonomy() . Добавьте в файл темы или плагина следующее:
// register new taxonomy which applies to attachments function wptp_add_location_taxonomy() { $labels = array( 'name' => 'Locations', 'singular_name' => 'Location', 'search_items' => 'Search Locations', 'all_items' => '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', ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'query_var' => 'true', 'rewrite' => 'true', 'show_admin_column' => 'true', ); register_taxonomy( 'location', 'attachment', $args ); } add_action( 'init', 'wptp_add_location_taxonomy' );Этот код создаст новую иерархическую таксономию, которая будет использоваться только для прикрепленных файлов.
Если вы хотите применить ее для других типов контента, вам нужно заменить параметр ' attachment ' в функции register_taxonomy() на массив, содержащий сокращения для всех типов контента, которые вы хотите включить.
Например:
register_taxonomy( 'location', array( 'attachment', 'post' ), $args );Теперь страница редактирования медиафайлов отображает новую таксономию:
Поскольку в свой код я включил аргумент ' show_admin_column ', страница медиа-библиотеки тоже ее включает:
Все! Теперь у вас есть рубрики, метки и свой тип записи для работы с прикрепленными медиафайлами.
Итог и использование этого подхода
Как вы увидели, вы можете применить рубрики и метки к прикрепленным медиафайлам, используя функцию register_taxonomy_for_object_type() . Вы также можете создать новую таксономию с помощью register_taxonomy() и применить ее к прикрепленным файлам (только к ним или также к другим типам контента).
Применение таксономий (в т.ч. рубрик и меток) к прикрепленным файлам можно использовать на практике:
Создать свой шаблон attachment.php чтобы отображать прикрепленные изображения в виде галереи, используя страницы архива для отображения изображений из разных рубрик. Создать файл шаблона для отдельных таксономий или терминов для разного отображения прикрепленных изображений — например используя таксономию ‘ location ’ вы можете создать файл шаблона location-uk.php чтобы показывать архив изображений из UK в каком-то специфическом стиле. На сайте с большим количеством прикрепленных PDF файлов вы можете разбить их по категориям и использовать страницы архива для отображения этих файлов по теме, разделу, типу — так, как будет нужно вашему проекту. В файле шаблона для определенной таксономии помимо списка записей по теме отображать список на все прикрепленные файлы с прямыми ссылками на файлы — вам нужно будет использовать для этого всего два запроса.Для всего этого есть много применений — в принципе это значит, что вы можете работать с прикрепленными файлами точно так же, как с записями, делая запросы и отображая архивы множеством способов.