Пользовательская Таксономия как флажок или выпадающий

10

Я зарегистрировал таможенный налог на свой CPT. На экране редактирования появится метаполе налога с полем автозаполнения.

Можно ли отобразить его как флажки или выпадающий список?

Джулиан Ф. Вейнерт
источник

Ответы:

15

Вы, вероятно, не установили аргумент 'иерархический' в значение true в вашей функции register_taxonomy. Это будет означать, что по умолчанию используется значение false, что дает вам интерфейс, похожий на тег.

Добавьте 'hierarchical' => trueв ваш register_taxonomy.

vancoder
источник
Ах да ... Спасибо! НО теперь можно было бы поменять его на флажок или даже выбрать? Я хочу, чтобы это можно было установить в настройках моих плагинов.
Джулиан Ф. Вайнерт
1
Изменение иерархического на истинное должно изменить интерфейс на флажки на экране редактирования для CPT.
Ванкодер
Да, это так, но я хочу иметь возможность переключаться между этими вариантами. Я не думаю, что это хорошая практика, чтобы переключаться между иерархическим и нет. Это не меняет ТОЛЬКО интерфейс, я прав?
Джулиан Ф. Вайнерт
Ну, иерархический делает это ... иерархическим :) Вы не можете переключаться между двумя интерфейсами, насколько мне известно.
ванкодер
Это решение не создает флажок или выпадающее меню.
Dev
17

Начиная с WP 3.7 ( https://core.trac.wordpress.org/ticket/14206 ) вы можете добавить этот аргумент к register_taxonomy:

'meta_box_cb' => 'post_categories_meta_box'

чтобы получить встроенный метабокс стиля категории флажка, не делая иерархию таксономической.

Также вы можете вместо этого предоставить собственную функцию обратного вызова для создания собственного метабокса (т.е. с выпадающим списком).

Джастин Фоелл
источник
Отлично, это именно то, что мне нужно, без необходимости делать иерархию таксономии. Спасибо
Александр Холсгроув
Проблема заключается в том, что неиерархические и иерархические таксономии имеют другую структуру данных, которую необходимо сохранить. Чтобы узнать, как решить эту проблему, см. Здесь gist.github.com/gschoppe/…
P. Galbraith
Это решение не создает флажок или выпадающее меню.
Dev
Это огромно! Спасибо ... Я никогда не знал, что это было
Сэм Ольгин
-1

Если вы хотите поменять термин существующего плагина на флажок, вам нужно отредактировать существующий register_taxonomy ().

add_action( 'init', 'change_room_term_to_checkbox', 999);
function change_room_term_to_checkbox()
{
    $tax = get_taxonomy('roomtype');
    $tax->meta_box_cb = 'post_categories_meta_box';
    $tax->hierarchical = true;
}

'roomtype' - это название термина, используемого в register_taxonomy ('roomtype', массив (.....

Никола
источник