Изменение внешнего вида пользовательских таксономических входов

Я работаю над сайтом, который будет использовать несколько пользовательских таксономий (для пользовательских типов сообщений). Я решил сделать некоторые из таксономий иерархическими, потому что метод ввода значений (флажки) является более желательным для этого сайта, чем вход в произвольную форму неиерархических таксономий. Тем не менее, мне бы очень хотелось, чтобы использовать переключатели входов вместо флажков. Кроме того, я хотел бы удалить раскрывающийся список, который используется для выбора родительского элемента в таксономии. Скриншот

Неужели я ошибаюсь? Должен ли я начинать с неиерархических таксономий и вместо этого изменять методы ввода? Я полностью открыт для ввода и с удовольствием отвечу на любые вопросы или поставлю дополнительную информацию, если смогу.

Конечно, просто используйте CSS и крюк 'admin_head' чтобы он исчез. Я считаю, что это то, что вы ищете?

Иерархическая запись таксономии на странице WordPress без родителя

Просто добавьте следующее в файл functions.php вашей темы или в .php файл плагина, который вы можете писать. Обратите внимание, что я включил 'init' hook для определения типа «Home» и «Bath» таксономии, чтобы другие могли более легко следовать примеру. Также обратите внимание, что если ваша таксономия называется Baths « вам нужно будет изменить селектор CSS как #newbaths_parent вместо #newbath_parent :

 add_action('admin_head','remove_bath_parents'); function remove_bath_parents() { global $pagenow; if (in_array($pagenow,array('post-new.php','post.php'))) { // Only for the post add & edit pages $css=<<<STYLE <style> <!-- #newbath_parent { display:none; } --> </style> STYLE; echo $css; } } add_action('init','add_homes_and_baths'); function add_homes_and_baths() { register_post_type('home', array( 'label' => 'Homes', 'public' => true, 'rewrite' => array('slug' => 'homes'), 'hierarchical' => false, ) ); register_taxonomy('bath', 'home', array( 'hierarchical' => true, 'label' => 'Baths', 'rewrite' => array('slug' => 'baths' ), ) ); } 

ОБНОВИТЬ

Поэтому, похоже, я пропустил часть вопроса с помощью переключателя . К сожалению, WordPress не делает это легко, но вы можете это сделать, используя буферизацию вывода PHP (через функции ob_start() и ob_get_clean() .) Просто найдите крючок до вывода 'add_meta_boxes' ( 'add_meta_boxes' ) и крючка после него выводится ( 'dbx_post_sidebar' ), а затем просматривает захваченный HTML для 'checkbox' и заменяет на 'radio' , эхо на экран и yer done! Код следует:

 add_action('add_meta_boxes','mysite_add_meta_boxes',10,2); function mysite_add_meta_boxes($post_type, $post) { ob_start(); } add_action('dbx_post_sidebar','mysite_dbx_post_sidebar'); function mysite_dbx_post_sidebar() { $html = ob_get_clean(); $html = str_replace('"checkbox"','"radio"',$html); echo $html; } 

И доказательства:

Снимок экрана с использованием таксономий с помощью переключателей

или, если вы ленивы, можете использовать этот плагин: Single Value таксономический интерфейс

(Я бы скорее добавил это как комментарий к ответу Майка, поскольку он в основном делает то же самое, но я еще не могу добавить комментарии)