Вы когда-нибудь были разочарованы тем фактом, что WordPress не позволяет назначать категории или теги для ваших изображений или загружаемых медиафайлов?
Представьте, насколько это может быть полезно: вы можете создавать динамические галереи изображений из определенных мест или определенных типов (ландшафты, рефераты и т. Д.), Или вы можете создавать страницы списков для сайтов с большим количеством вложений в формате PDF.
Хорошая новость заключается в том, что этого достичь на удивление легко. Вы можете добавлять категории и теги к своим вложениям, добавляя простой код в файл функций темы или в плагин, а также создавать собственную таксономию, которая применяется к вложениям.
В этом уроке я покажу вам, как это сделать, и, что еще лучше, за 10 минут или меньше!
Что такое таксономия?
Таксономия является одним из тех слов, которые большинство людей никогда не слышат и не используют. По сути, таксономия — это способ группировать вещи.
Например, у меня может быть куча разных типов животных. Я могу сгруппировать их в соответствии с различными характеристиками, а затем назначить имена этих групп. Это то, с чем сталкиваются большинство людей на уроках биологии, и это известно как таксономия Линнея.
В 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-файлы на сайте с большим их количеством и используйте архивные страницы, чтобы обеспечить отображение файлов по темам, отделам, типам мультимедиа или любым другим вариантам, необходимым для вашего проекта.
- В файле шаблона для данной таксономии отобразите ссылку на все вложения с запрашиваемым термином под списком сообщений с этим термином с прямыми ссылками на файлы вложений — для этого вы должны использовать два пользовательских запроса в файле шаблона.
Для этого есть много более значительных приложений — фактически это означает, что вы можете работать с файлами вложений так же, как вы делаете сообщения и пользовательские типы сообщений, имея возможность запрашивать их и отображать их архивы различными способами.