Taxonomia personalizada como caixa de seleção ou lista suspensa

10

Registrei um imposto personalizado no meu CPT. Na tela de edição, a meta caixa de impostos é exibida com um campo de preenchimento automático.

É possível exibi-lo como caixas de seleção ou menu suspenso?

Julian F. Weinert
fonte

Respostas:

15

Você provavelmente não configurou o argumento 'hierárquico' como true no seu register_taxonomy. Isso significa que o padrão é false, o que fornece uma interface do tipo tag.

Adicione 'hierarchical' => trueao seu register_taxonomy.

vancoder
fonte
Oh sim ... Obrigado! MAS Agora seria possível alterá-lo para a caixa de seleção ou até mesmo selecionar? Quero poder colocar isso como configuração nas configurações de meus plugins.
Julian F. Weinert
1
Alterar hierárquico para true deve alterar a interface para caixas de seleção na tela de edição do CPT.
vancoder
Sim, é verdade - mas quero poder alternar entre essas opções. Não acho que seja uma boa prática alternar entre hierárquicos e não. Não muda APENAS a interface, estou certo?
Julian F. Weinert
Bem, hierárquico torna ... hierárquico :) Você não pode alternar entre as 2 interfaces para o meu conhecimento.
vancoder
Esta solução não cria uma caixa de seleção ou menu suspenso.
Dev
17

No WP 3.7 ( https://core.trac.wordpress.org/ticket/14206 ), você pode adicionar este argumento ao register_taxonomy:

'meta_box_cb' => 'post_categories_meta_box'

para obter a metabox interna do estilo da categoria da caixa de seleção sem precisar hierarquizar sua taxonomia.

Além disso, você poderia fornecer sua própria função de retorno de chamada para criar sua própria metabox (ou seja, com uma lista suspensa).

Justin Foell
fonte
Ótimo, isso é exatamente o que eu precisava, sem ter que tornar a taxonomia hierárquica. Obrigado
Alexander Holsgrove
O problema disso é que as taxonomias não hierárquicas e hierárquicas têm uma estrutura de dados diferente que precisa ser salva. Para saber como corrigir esse problema, consulte aqui gist.github.com/gschoppe/…
P. Galbraith
Esta solução não cria uma caixa de seleção ou menu suspenso.
Dev
Isso é enorme! Obrigado ... Eu nunca soube que existia
Sam Holguin
-1

se você quiser alterar o termo do plug-in existente para a caixa de seleção, precisará editar o register_taxonomy () existente.

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' é o nome do termo usado em register_taxonomy ('roomtype', array (.....

Nicola
fonte