ЗАВАНТАЖИТИ ВИХІДНІ ФАЙЛИ
Вас коли-небудь дивувало, що WordPress не дозволяє вам присвоїти категорії і теги для завантажених вами зображень і інших медіа файлів?
Уявіть, як це могло б бути корисно: стало б можливим створювати динамічні галереї зображень, присвячених певним місцях або теми (пейзажі, абстракція і т. д.), або робити оголошень з величезною кількістю сторінок у форматі PDF.
Гарна новина полягає в тому, що цього легко домогтися. Ви можете додати категорії і теги до завантажених файлів, шляхом додавання простого коду до файлу функцій вашої теми, або з допомогою плагіна.
Також, цим способом ви можете створити кастомний — тобто створену вами — таксономію (custom taxonomy), яка буде застосована до завантажених файлів.
У даній статті, прочитання якої займе менше 10 хвилин, я покажу, як це зробити!
Що таке класифікація?
Згідно WordPress Codex:
Таксономія (синонім слова систематика) це одне з тих слів, про який більшість людей ніколи нічого не чуло. Якщо коротко, то таксономія дозволяє групувати об’єкти.
Наприклад, у мене є кілька різних видів тварин. Я можу згрупувати їх разом по деяким характеристикам і потім привласнити отриманим групам імена. Ці групи будуть називатися біологічними класами, або таксономією Ліннея (по імені шведського фізіолога Карла Ліннея).
В WordPress ж, таксономія це механізм групування записів (посилань, кастомних записів тощо).
Для успішного засвоєння матеріалу даної статті вам знадобиться:
- Встановлений WordPress;
- Доступ до файлу функцій вашої теми, або дозвіл на створення і завантаження плагінів для неї (якщо ви виберете спосіб з плагіном);
- Текстовий редактор.
Примітка: Я рекомендую створити плагін для реалізації завдань, описаних в цій статті, тому що такий спосіб незалежний від теми, а в майбутньому ви можливо захочете змінити тему. Але, зрозуміло, додавання коду до теми в файл functions.php також буде відмінно працювати.
Підготовча частина: екран бібліотеки файлів
Як можна помітити, екран бібліотеки файлів практично порожній і не має можливостей додавання категорій, тегів або класифікацій:
За замовчуванням, у вас немає доступу до функцій створення категорій або тегів – але такий стан справ можна змінити.
Створення категорій для завантажених файлів
Першим кроком є дозвіл присвоювання категорій для завантажених файлів. Це можна зробити за допомогою функції 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’ );
Збережіть файл і оновіть екран бібліотеки файлів. Ви побачите, що категорії тепер доступні:
Також, з’явилася колонка, відображає категорії, присвоєні об’єктам у списку:
Примітка: в даному прикладі я не використовую зображення, але функції категорій будуть застосовні для файлів всіх типів.
Прикріплення тегів до завантажених файлів
Якщо ви віддаєте перевагу працювати з тегами замість категорій (або з обома), то можете використовувати відповідну функцію.
Додайте наступний код в вашому плагін або файл функцій теми:
// дозвіл додавання тегів до завантажуваних файлів
function wptp_add_tags_to_attachments() {
register_taxonomy_for_object_type( ‘post_tag’, ‘attachment’ );
}
add_action( ‘init’ , ‘wptp_add_tags_to_attachments’ );
Як і в прикладі вище, даний код додає можливість привласнювати теги на екрані бібліотеки файлів:
Відповідно, з’явиться і колонка «Tags» на екрані бібліотеки файлів:
Рухаємося далі: створення таксономій для завантажених файлів
В деяких випадках, можливо, ви не захочете працювати з наявними категоріями або тегами, коли будете займатися класифікацією завантажених вами файлів. В такому разі, ви можете зареєструвати кастомний таксономію і застосувати її до завантаженого файлу.
У прикладі вище, я додав тег зображення, щоб показати, як це робиться. Уявімо, що я хочу створити ієрархічну таксономію під назвою «Locations», яку я зміг би використати для класифікації та відображення всіх моїх зображень.
Це можна зробити за допомогою функції register_taxonomy(). Додайте наступні рядки в файл функцій теми або плагін:
// реєстрація нової таксономії для завантажених файлів
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». Тепер екран бібліотеки файлів виглядає так:
От і все! Тепер у вас є категорії, теги і кастомні типи записів, які можна застосувати до завантажених файлів.
Висновок
Як ви побачили, можна додати категорії і теги до своїх медіа файлів, таких як зображення і PDF-файли, використовуючи функцію register_taxonomy_for_object_type(). Ви також можете створити нову таксономію, використовуючи функцію register_taxonomy() і застосовуючи її до завантажуваних файлів.
Застосування таксономії (включаючи категорії та теги) для файлів, що завантажуються може мати кілька практичних застосувань.
Ми можемо:
- Створити власний шаблон attachment.php для відображення завантажених зображень в стилі галереї, виводячи їх в залежності від вибраної категорії;
- Створювати шаблони для певних класифікацій, щоб відображати завантажені файли на сайті в різних формах; наприклад, щоб використовувати таксономію «локація», ви можете створити файл шаблону з ім’ям taxonomy-location-uk.php і відобразити архів фотографій з Великобританії;
- Сортувати величезна кількість PDF-файлів на сайті, вибравши відображення по темі, відділу, типу файлу або будь-якого іншого критерію;
- Налаштувати відображення завантажених файлів у файлі шаблону класифікацій, згідно із зазначеною датою, використовуючи запити, отримані від користувача.
Є ще безліч інших варіантів застосування цих інструментів. Все це повинно допомогти вам ефективно працювати із завантаженими файлами, також як і з записами, будучи в стані виводити їх на екран різними способами.
Переклад статті «Applying Categories, Tags and Custom Taxonomies to Media Attachments» був підготовлений дружною командою проекту Сайтостроение від А до Я.