Статьи

Применение категорий, тегов и пользовательских таксономий к медиа-вложениям

Вы когда-нибудь были разочарованы тем фактом, что WordPress не позволяет назначать категории или теги для ваших изображений или загружаемых медиафайлов?

Представьте, насколько это может быть полезно: вы можете создавать динамические галереи изображений из определенных мест или определенных типов (ландшафты, рефераты и т. Д.), Или вы можете создавать страницы списков для сайтов с большим количеством вложений в формате PDF.

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

В этом уроке я покажу вам, как это сделать, и, что еще лучше, за 10 минут или меньше!

Что такое таксономия?

Согласно Кодексу WordPress :

Таксономия является одним из тех слов, которые большинство людей никогда не слышат и не используют. По сути, таксономия — это способ группировать вещи.

Например, у меня может быть куча разных типов животных. Я могу сгруппировать их в соответствии с различными характеристиками, а затем назначить имена этих групп. Это то, с чем сталкиваются большинство людей на уроках биологии, и это известно как таксономия Линнея.

В WordPress таксономия — это механизм группировки для некоторых сообщений (или ссылок или пользовательских типов сообщений).


Тебе понадобиться:

  • Разрабатываемая установка WordPress
  • Доступ к файлу функций вашей темы или доступ по FTP, чтобы вы могли создавать и загружать плагин, если вы выбрали этот метод вместо редактирования файла функций
  • Текстовый редактор

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


В настоящее время экран Media Editing довольно прост, поскольку нет доступных категорий, тегов или таксономий:

вложения-и-таксономия-медиа-редактирование-экран, прежде чем

По умолчанию у вас нет возможности выбрать какие-либо существующие категории или теги, но вы можете изменить это.


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

1
2
3
4
function wptp_add_categories_to_attachments() {
    register_taxonomy_for_object_type( ‘category’, ‘attachment’ );
}
add_action( ‘init’ , ‘wptp_add_categories_to_attachments’ );

Сохраните файл и обновите экран Media Editing. Вы увидите, что категории теперь доступны:

вложения-и-таксономии-медиа-редактирование-экран-с категориями

Столбец также появится для категорий на экране библиотеки мультимедиа, как вы можете видеть:

вложения и-таксономии-медиа-библиотека-экран-с категориями

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


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

1
2
3
4
5
// 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’ );

Как и раньше, это добавит теги на экран Media Editing:

вложения-и-таксономия-медиа-редактирование-экран с-теги

Он также добавит столбец «Теги» на экран библиотеки мультимедиа:

вложения и-таксономии-медиа-библиотека-экран-с тегами

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

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

Вы делаете это с помощью функции register_taxonomy() . В вашем файле плагина или файле функций добавьте следующее:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 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() на массив, содержащий слагы всех типов контента, которые вы хотите включить, например:

1
register_taxonomy( ‘location’, array( ‘attachment’, ‘post’ ), $args );

Экран Media Editing теперь отображает новую таксономию:

вложения-и-таксономии-медиа-редактирование-экран-с-настраиваемого-систематики

Поскольку я включил аргумент 'show_admin_column' в свой код, экран библиотеки мультимедиа также:

вложения-и-таксономия-медиа-библиотека-экран-с настраиваемой-систематикой

Вот и все! Теперь у вас есть категории, теги и настраиваемый тип записи, настроенный для работы с вложениями мультимедиа.


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

Такое применение таксономий (включая категории и теги) к вложениям может иметь ряд практических применений:

  • Создайте пользовательский файл шаблона attachment.php для отображения вложенных изображений в стиле галереи, используя страницы архива для отображения изображений из разных категорий или местоположений.
  • Создайте файлы шаблонов для конкретных таксономий или терминов, чтобы по-разному отображать вложения на сайте — например, используя таксономию ‘location’, вы можете создать файл шаблона taxonomy-location-uk.php для отображения архива изображений из Великобритании с указанием местоположения — добавлен специфический стиль.
  • Распределите вложения в PDF-файлы на сайте с большим их количеством и используйте архивные страницы, чтобы обеспечить отображение файлов по темам, отделам, типам мультимедиа или любым другим вариантам, необходимым для вашего проекта.
  • В файле шаблона для данной таксономии отобразите ссылку на все вложения с запрашиваемым термином под списком сообщений с этим термином с прямыми ссылками на файлы вложений — для этого вы должны использовать два пользовательских запроса в файле шаблона.

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