Вывод произвольной таксономии в виде чекбоксов или выпадающего списка

7 авг. 2013 г., 20:34:39
Просмотры: 35.5K
Голосов: 15

Я зарегистрировал произвольную таксономию для своего произвольного типа записи. На экране редактирования метабокс таксономии отображается с полем автозаполнения.

Возможно ли отобразить её в виде чекбоксов или выпадающего списка?

0
Все ответы на вопрос 3
7
25

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

'meta_box_cb' => 'post_categories_meta_box'

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

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

16 июн. 2016 г. 00:34:29
Комментарии

Отлично, именно это мне и нужно было, без необходимости делать таксономию иерархической. Спасибо

Alexander Holsgrove Alexander Holsgrove
29 дек. 2016 г. 23:20:35

Проблема в том, что неиерархические и иерархические таксономии имеют разную структуру данных, которую нужно сохранять. Как исправить эту проблему, смотрите здесь https://gist.github.com/gschoppe/29ba81a1f676d7802cb8#file-cat-like-custom-taxonomy-php

P. Galbraith P. Galbraith
27 февр. 2017 г. 08:18:32

Это решение не создает флажков или выпадающего меню.

Brad Dalton Brad Dalton
12 сент. 2017 г. 12:28:59

Это потрясающе! Спасибо... Я даже не знал, что такое существует

Sam Holguin Sam Holguin
10 февр. 2019 г. 22:00:55

Где я могу изменить информацию, как предложил Джастин Фауэлл? Извините, если это очевидно для всех, я только учусь. Эмили

Emily Wilding Emily Wilding
23 июн. 2021 г. 14:43:47

В вызове register_taxonomy() для вашей пользовательской таксономии. Как вы настраиваете таксономию?

Rup Rup
23 июн. 2021 г. 17:57:26

Кажется, это больше не работает? Настроил как в вашем примере, но поле выбора не отображается.

Loosie94 Loosie94
11 янв. 2022 г. 17:07:36
Показать остальные 2 комментариев
5
23

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

Добавьте 'hierarchical' => true в вашу функцию register_taxonomy.

7 авг. 2013 г. 20:37:48
Комментарии

О да... Спасибо! НО Можно ли теперь изменить это на чекбоксы или даже выпадающий список? Я хочу иметь возможность добавить это как настройку в параметры моего плагина.

Julian F. Weinert Julian F. Weinert
7 авг. 2013 г. 20:51:25

Изменение hierarchical на true должно изменить интерфейс на чекбоксы на экране редактирования вашего CPT.

vancoder vancoder
7 авг. 2013 г. 21:06:24

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

Julian F. Weinert Julian F. Weinert
7 авг. 2013 г. 21:09:00

Ну, иерархическая делает её... иерархической :) Насколько мне известно, переключение между двумя интерфейсами невозможно.

vancoder vancoder
7 авг. 2013 г. 21:33:32

Это решение не создаёт флажок или выпадающее меню.

Brad Dalton Brad Dalton
12 сент. 2017 г. 12:28:47
0
-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', array(.....

29 мар. 2017 г. 11:34:00