Вас не дратує, що WordPress не дозволяє присвоїти рубрику або мітки вашим зображенням чи завантаженим файлам?
Уявіть, як це могло бути корисно: ви могли б створити динамічні галереї зображень з окремих місць або окремих типів (пейзажі, абстракція), або ви могли б створити сторінки-списки для сайтів з великою кількістю прикріплених PDF-файлів.
| Завантажити вихідні |
Хороша новина: це напрочуд просто зробити! Ви зможете додати рубрики та мітки до ваших прикріплених файлів, додавши простий код у файл functions.php вашої теми або плагін, ви також зможете створити свою таксономію, яка застосовується до прикріплених файлів.
У цьому посібнику я покажу вам, як це зробити і дуже швидко це займе не більше 10 хвилин!
Що таке таксономія?
Як сказано в WordPress Codex:
таксономія — одне із слів, які більшість людей ніколи не чують та не використовують. В принципі, таксономія спосіб групувати речі.
Наприклад, є набір різних видів тварин. Я можу групувати їх разом за різними характеристиками і потім надати цим групам імена. З цим більшість стикається на шкільних уроках біології і це не що інше, як таксономія.
У 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' );
Подібно до попереднього варіанту, це додасть мітки на сторінку редагування медіафайлів:
Це також додасть колонку міток у медіа-бібліотеку:
Копнем глибше: своя таксономія
Може статися, що ви не захочете працювати з існуючими рубриками або мітками при класифікації медіафайлів, у такому випадку ви можете зареєструвати свою таксономію та застосувати її до типу запису 'прихильність.
У прикладі вище я додав до мого зображення мітку, щоб показати, звідки вона була взята. Допустимо, я хочу створити ієрархічну таксономію під назвою 'Місце проживання', яку я зможу використовувати для класифікації та відображення всіх моїх зображень.
Ви можете зробити це за допомогою функції 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' );
Цей код створить нову ієрархічну таксономію, яка використовуватиметься лише для прикріплених файлів.
Якщо ви бажаєте застосувати її для інших типів контенту, вам потрібно замінити параметр 'прихильність' у функції register_taxonomy() масив, що містить скорочення для всіх типів контенту, які ви хочете включити.
Наприклад:
register_taxonomy( 'location', array( 'attachment', 'post' ), $args );
Тепер сторінка редагування медіафайлів відображає нову таксономію:
Оскільки до свого коду я включив аргумент 'show_admin_column', сторінка медіа-бібліотеки також її включає:
Всі! Тепер у вас є рубрики, мітки та свій тип запису для роботи з прикріпленими медіафайлами.
Підсумок та використання цього підходу
Як ви побачили, ви можете застосувати рубрики та мітки до прикріплених медіафайлів, використовуючи функцію register_taxonomy_for_object_type(). Ви також можете створити нову таксономію за допомогою register_taxonomy() і застосувати її до прикріплених файлів (лише до них або інших типів контенту).
Застосування таксономій (в т.ч. рубрик та міток) до прикріплених файлів можна використовувати на практиці:
- Створити свій шаблон вкладення.php щоб відображати прикріплені зображення у вигляді галереї, використовуючи сторінки архіву для відображення зображень із різних рубрик.
- Створити файл шаблону для окремих таксономій або термінів для різного відображення прикріплених зображень, наприклад, використовуючи таксономію 'розташування' ви можете створити файл шаблону location-uk.php щоб показувати архів зображень із UK у якомусь специфічному стилі.
- На сайті з великою кількістю прикріплених PDF файлів ви можете розбити їх за категоріями та використовувати сторінки архіву для відображення цих файлів за темою, розділом, типом — так, як потрібно вашому проекту.
- У файлі шаблону для певної таксономії крім списку записів на тему відображати список на всі прикріплені файли з прямими посиланнями на файли - вам потрібно буде використовувати для цього всього два запити.
Для всього цього є багато застосувань - в принципі це означає, що ви можете працювати з прикріпленими файлами так само, як із записами, роблячи запити та відображаючи архіви безліччю способів.
Коментарі до запису: 14
Здрастуйте, підкажіть, як зробити те саме для постів. Під кожною міткою виводиться список усіх постів цієї мітки.
Можливо, цей урок допоможе вам вивести список постів:
https://hostenko.com/wpcafe/tutorials/sozdaem-short-kod-dlya-vyivoda-spiska-zapisey-s-raznyimi-parametrami/
Скажіть як додати ще одну мітку для запису? Чи можете наштовхнути на ідею? Мені потрібно щоб окрім існуючого поля з позначками було ще окреме
Якщо коротко, потрібно створювати додатковий метабокс і свою кастомну таксономію. Детальніше ми писали про це в попередніх уроках, подивіться в пошуку.
Підкажіть як вибрати картинки з певними тегами, щоб потім їх у галереї використовувати?
Чи можна створити таксономію без slug? Щоб запис мав адресу сайт/запис?
І якщо вже існує таксономія із slug, як її прибрати? Спершу прибрати її в коді, а потім замінити адреси в базі даних?
Здрастуйте, Ви можете навести код, який зареєструє новий розділ з мітками для постів. Я маю введу, щоб нові позначки відображалися не в медіафайлах, а записах.
Автор, будь ласка, скажи як ти зробив наприкінці сайту в рубриці схожі пости(незнаю як правильно назвати) такі картинки із заокругленими кінцями. Боже, я подивився у вкладці теми там саме, наприклад напис на картинці GOODWEB. Дуже прошу, підкажи як такі зробити і що можна було б написати текст біля них. У мене вордпрес
Є безліч безкоштовних плагінів для вставки блоку зі схожими постами. Зробіть пошук wordpress related posts. А ці картинки — вони беруться з мініатюр кожного посту, вони закруглені тому, що вони закруглялися у фотошопі, от і весь секрет.
Добрий день. Є питання, опишу коротко завдання щоб простіше було мене зрозуміти)) Кожна запис являє собою набір фото з об'єкта. Фотки потрібно розділити на групи. Чи можна записувати динамічне додавання цих текстових полів? Допустимо тицьнув на кнопочку «+» і нижче з'явилося таке ж текстове поле, склав туди пачку фоток, потрібен ще гурт, знову тикаємо «+»… І, якщо це групи і якось треба їх визначати що і де, то до кожного цього полю свою мітку б, ну або влаштував би варіант просто з готовим списком, що розкривається замість міток, біля кожного текстового поля. Ось було б ідеально, як мені здається:) Чи може їсти ще думки як подібне реалізувати? Може питання дурні, просто з WP тільки намагаюся потоваришувати)) Заздалегідь дякую за будь-яку інфу :)
Advanced Custom Fields відмінний плагін, з поставленим завданням впорався на відмінно!
Здравствуйте, прописав Ваш код:
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');
у файлі functions.php
у медіафайлах з'явилися рубрики та мітки. Але біда в тому, що на сторінках самих рубрик та міток не виводяться посилання на медіафайли.
Який код дописати в archive.php, щоб атачменти з'явилися поряд з постами?
Добрий день.
А як зробити висновок списку вкладень для певної мітки/рубрики?
Тобто мітка прописалася біля вкладення, але коли по ній переходиш, нічого не знаходиться.
Дякуємо
Дякую, дуже гарна стаття!
Допоможіть мені в медіатеці зробити випадаюче меню для рубрик або міток зображень! |Тоєсть я додав рубрики та мітки для картинок, і тепер хочу щоб вгорі у мене був список, в якому я можу вибрати відповідну рубрику! Заздалегідь вдячний! PS не хочу використовувати додаткові плагіни, хочу вивести через файл function.php