У меня есть две иерархические пользовательские таксономии, каждая из которых имеет свой собственный тип записи. Я хотел бы удалить метабокс для каждого на экране редактирования типа сообщения.
Я прочитал удалить пользовательский метабокс таксономической формы пользовательский тип публикации и Как удалить метабокс таксономии в стиле категории? но я все еще застрял
Я использую функцию:
function remove_taxonomies_metaboxes() {
remove_meta_box( 'partner_typediv', 'partners', 'normal' );
remove_meta_box( 'person_typediv', 'people', 'normal' );
}
add_action( 'admin_menu' , 'remove_taxonomies_metaboxes' );
Я удалил префикс post_types и custom_taxonomies, но это все. Я пытался использовать admin_menu
крючок и add_meta_boxes
крючок, рекомендованные Кодексом. Я пробовал оба normal
и side
для третьего параметра.
Вышеуказанная функция находится в mu-plugins
файле под функцией, которая регистрирует типы записей и таксономии.
РЕДАКТИРОВАТЬ: Это была опечатка в функции register_taxonomy. Я ужасный человек. Спасибо всем за помощь. Я еще кое-что узнал!
'show_ui' => false
?Ответы:
Если вы вручную регистрируете свою пользовательскую таксономию через register_taxonomy, тогда вы можете передать аргументы, чтобы контролировать, где появляется метабокс.
В приведенном ниже примере настройки ,
show_ui
чтобыfalse
было полностью удалить METABOX с экрана редактирования, экран быстрого редактирования, и в меню администратора. Но если установитьshow_ui
дляtrue
вас может достигнуть более тонкий контроль, а затем , используяshow_in_quick_edit
иmeta_box_cb
аргументы (настройка позже ложных скрывает METABOX на экране CPT редактирования по желанию).источник
Вы говорите, что хотите удалить поля с
post
экрана редактирования, а не с экрана Тип сообщения, поэтому при условии, что вы должны иметь возможность регистрировать свою таксономию только для тех типов сообщений, к которым вы хотите ее применять, и вообще избегать этого. Пример в Кодексе регистрирует пример таксономии только дляbook
типа записи, например:Я думаю, что это то, что вам нужно сделать, но вы не разместили регистрационный код для типов сообщений или таксономий.
Если вы сами создали мета-блоки, то есть эти блоки не являются стандартными, тогда способ избежать этой проблемы состоит в том, чтобы зарегистрировать мета-блоки на определенных хуках пост-типа :
Или следовать примеру выше:
Один из тех подходов должен решить это для вас. Я не думаю, что вы должны использовать
remove_meta_box
вообще.Если вы пытаетесь удалить мета-блоки из типа записи, в которой они зарегистрированы, это работает (снова следуя примеру в Кодексе):
Я уверен, что
admin_menu
это слишком рано, но не проверял это.add_metaboxes
у меня тоже работает. Я не знаю, почему это не работает для вас.источник
Используя ACF для управления пользовательскими таксономиями, метабоксы по умолчанию не нужны. Я попытался, успешно, этот код:
Низкий приоритет (100) позволяет этому коду работать, даже если таксономии создаются таким плагином, как CPT-UI.
источник
remove_meta_box( 'tagsdiv-'.$taxonomy, $post_type, 'side' );