WordPress: мета-поле категории (и другой таксономии) в настраиваемом типе сообщения

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

Есть ли способ легко отобразить какое-то мета-поле по умолчанию для всех возможных таксономий, установленных в системе? Или мне нужно создавать каждый мета-бокс самостоятельно?


person xxtesaxx    schedule 17.06.2017    source источник
comment
Когда вы создаете таксономию и связываете ее с некоторым CPT, ее виджет, такой как метабокс категории, уже отображается на боковой панели этого экрана редактирования сообщения CPT ... если вы видите теги, такие как виджет, и хотите использовать категорию / флажок, например, у вас есть два варианта: либо сделать таксономию иерархической, либо использовать обратный вызов для отображения метабокса.   -  person Mohsin    schedule 18.06.2017
comment
Чтобы уточнить, когда вы спрашиваете Или мне нужно создавать каждое мета-поле самостоятельно? хотите ли вы иметь одно мета-поле "Категории", одно мета-поле "Теги", одно мета-поле "Custom Tax 1", и т. д. Или вам нужно одно мета-поле, и в качестве вариантов будут использоваться названия таксономий (например, флажок для категории, флажок для тега, флажок для пользовательского налога 1)?   -  person Jared Cobb    schedule 18.06.2017
comment
Я создал собственный тип сообщения. Теперь мне нужны мета-блоки для всех установленных в WordPress таксономий. Я не против иметь по одному мета-блоку для каждой таксономии. Я хочу использовать мета-поля таксономии, чтобы позже можно было запросить свой собственный тип сообщения, когда я нахожусь на странице архива одной из таксономий.   -  person xxtesaxx    schedule 18.06.2017
comment
Нашел: register_taxonomy_for_object_type   -  person xxtesaxx    schedule 18.06.2017


Ответы (1)


Я нашел способ делать то, что хочу. После того, как я вызываю register_post_type() для своего настраиваемого типа сообщения, я вызываю следующий код, чтобы получить список всех установленных общедоступных таксономий, а затем добавить их в свой тип сообщения:

$args = array(
    'public'   => true,
);
$output = 'objects';
$taxonomies = get_taxonomies( $args, $output );
foreach  ( $taxonomies as $taxonomy )
{
    register_taxonomy_for_object_type( $taxonomy->name, 'my_post_type' );
}
person xxtesaxx    schedule 18.06.2017