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


Ответы:


15

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

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


Ах да ... Спасибо! НО теперь можно было бы поменять его на флажок или даже выбрать? Я хочу, чтобы это можно было установить в настройках моих плагинов.
Джулиан Ф. Вайнерт

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', массив (.....

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.