При доработке сторонних плагинов или купленной темы. Мы можем столкнуться с ситуацией, когда к созданному нами кастомному типу записи (в нашем случае “фрукты” см. эту статью). Нужно прикрепить ранее (кем-то другим) созданную таксономию (в нашем примере “дерево”).
Есть два варианта решения данной задачи:
- Мы можем отредактировать существующий код. Что есть нехорошо, т.к. при обновлении плагина или темы, наши правки “слетят” и придется все изменения вносить по новой (если вспомним за них).
- Используя Хуки и Фильтры 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);
На этом все.