Как удалить метабокс таксономии в стиле категории (иерархической)?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/6183

  •  16-10-2019
  •  | 
  •  

Вопрос

Мне было интересно, может ли кто-нибудь помочь мне с этим.В настоящее время я следую руководству Шибашаке по созданию пользовательских мета-блоков, включающих выбор таксономии: http://shibashake.com/wordpress-theme/wordpress-custom-taxonomy-input-panels .Они показывают, как удалить стандартный метабокс, автоматически создаваемый Wordpress для таксономий, с помощью функции remove_meta_box.Единственная проблема заключается в том, что эта функция по какой-то причине не работает с таксономиями, которые работают как категории, то есть с теми, где для параметра иерархии установлено значение true.Я знаю, что эта функция работает, потому что те, которые настроены как теги, исчезают достаточно легко.Я не могу, если это просто невозможно или мне нужно добавить что-то особенное в один из параметров, чтобы это заработало.

Пример:

$args = array( 
    'hierarchical' => false,  
    'label' =>'People',  
    'query_var' => true,  
    'rewrite' => true       
);
register_taxonomy('people', 'post',$args);

remove_meta_box('tagsdiv-people','post','side');

Это отлично работает.Однако если я установлю для иерархии значение «истина», мета-поле останется на месте.

Может ли кто-нибудь пролить свет?

Это было полезно?

Решение

Неиерархические таксономии (например, теги) используют tagsdiv-{$tax_name}.Иерархические таксономии (например, категории) используют {$tax_name}div.

Это по историческим причинам:категории были помещены в categorydiv, теги в tagsdiv. Когда была добавлена ​​поддержка нескольких неиерархических таксономий., tagsdiv название было расширено до tagsdiv-{$tax_name}. Когда наконец стало возможным создание множественных иерархических таксономий, они предпочитают обобщать categorydiv к {$tax_name}div.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top