Сегодня мне нужно было изменить аргументы пользовательской таксономии, которая уже была зарегистрирована сторонним плагином . В частности, я хотел установить show_admin_column
аргумент true
и изменить rewrite
слаг, чтобы он был не просто слагом таксономии. В данном случае это был тип записи "Люди" с пользовательской таксономией категории людей.
Я был удивлен, что об этом раньше не спрашивали, так что вот вопрос и ответ.
Ответы:
register_taxonomy()
это инструмент для работы. Из Кодекса:Один из вариантов - скопировать
register_taxonomy()
$args
и изменить их. Однако это будет означать, что любые будущие изменения в исходномregister_taxonomy()
коде будут перезаписаны.Поэтому, по крайней мере, в этом случае предпочтительно получить исходные аргументы, изменить те, которые я хочу изменить, а затем перерегистрировать таксономию. Вдохновение для этого решения идет к @Otto в этом ответе на похожий вопрос о пользовательских типах записей .
Используя
people
пользовательский тип записи иpeople_category
таксономию из примера, это будет сделано:Обратите внимание, что я приведу третий
register_taxonomy()
аргумент к ожидаемому типу массива. Это не является строго необходимым, посколькуregister_taxonomy()
использует,wp_parse_args()
которые могут обрабатыватьobject
илиarray
. Тем не менее,register_taxonomy()
«s$args
должны быть представлены как вarray
соответствии с Кодексом, так что чувствует себя хорошо для меня.источник
'people_category'
), что и исходная таксономия, чтобы перезаписать его.capabilities
параметр хранится внутри,cap
так что он не будет передан новой зарегистрированной таксономии. Смотрите мой ответ на подобный вопрос здесь