ЗАВАНТАЖИТИ ВИХІДНІ ФАЙЛИ

Вас коли-небудь дивувало, що 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» був підготовлений дружною командою проекту Сайтостроение від А до Я.