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


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.


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).


Ó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 (.....

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.