Під час доопрацювання сторонніх плагінів або купленої теми ми можемо зіткнутися з ситуацією, коли до створеного нами кастомного типу запису (у нашому випадку — “фрукти”, див. цю статтю) потрібно прикріпити раніше (кимось іншим) створену таксономію (у нашому прикладі — “дерево”).
Існує два варіанти вирішення цього завдання:
- Можна відредагувати існуючий код. Але це не дуже добре, оскільки при оновленні плагіна або теми наші зміни буде втрачено, і доведеться знову все вносити вручну (якщо згадаємо).
- Внести потрібні правки за допомогою Хуків і Фільтрів WordPress.
У короткому прикладі нижче наведено весь необхідний код:
add_action('init', function()
{
register_taxonomy_for_object_type('tree', 'fruit');
});
add_filter('register_taxonomy_args', function($args, $taxonomy)
{
if($taxonomy == 'tree')
{
$args['show_admin_column'] = true;
}
return $args;
}, 10, 2);Розглянемо його детальніше:
add_action('init', function()
{
register_taxonomy_for_object_type('tree', 'fruit');
});Функція ядра WP “register_taxonomy_for_object_type” забезпечує прив’язку таксономії до типу запису. Тобто, за її допомогою можна зв’язати будь-які типи записів і таксономії між собою (це не обов’язково робити лише через функцію реєстрації таксономії).
Наступний код забезпечує відображення колонки таксономії “Дерево” у таблиці зі списком записів “Фрукти”:
add_filter('register_taxonomy_args', function($args, $taxonomy)
{
if($taxonomy == 'tree')
{
$args['show_admin_column'] = true;
}
return $args;
}, 10, 2);На цьому все.
