Taxonomie personnalisée en tant que case à cocher ou liste déroulante


10

J'ai enregistré une taxe douanière sur mon CPT. Sur l'écran d'édition, la boîte de méta-taxe apparaît avec un champ de saisie semi-automatique.

Est-il possible de l'afficher sous forme de cases à cocher ou de liste déroulante à la place?

Réponses:


15

Vous n'avez probablement pas défini l'argument "hiérarchique" sur true dans votre register_taxonomy. Cela signifierait qu'il vaut par défaut false, ce qui vous donne une interface de type balise.

Ajoutez 'hierarchical' => trueà votre register_taxonomy.


Oh ouais ... Merci! MAIS Serait-il maintenant possible de le changer en case à cocher ou même de sélectionner? Je veux pouvoir mettre cela comme paramètre dans mes paramètres de plugins.
Julian F. Weinert

1
Changer hiérarchique en vrai devrait changer l'interface en cases à cocher sur votre écran d'édition pour le CPT.
vancoder

Oui, c'est le cas - mais je veux pouvoir basculer entre ces options. Je ne pense pas que ce soit une bonne pratique de basculer entre hiérarchie et non. Cela ne change PAS UNIQUEMENT l'interface, ai-je raison?
Julian F. Weinert

Eh bien, hiérarchique rend ... hiérarchique :) Vous ne pouvez pas basculer entre les 2 interfaces à ma connaissance.
vancoder

Cette solution ne crée pas de case à cocher ni de menu déroulant.
Dev

17

Depuis WP 3.7 ( https://core.trac.wordpress.org/ticket/14206 ), vous pouvez ajouter cet argument à register_taxonomy:

'meta_box_cb' => 'post_categories_meta_box'

pour obtenir la métabox de style de catégorie de case à cocher intégrée sans avoir à rendre votre taxonomie hiérarchique.

Vous pouvez également fournir votre propre fonction de rappel pour créer votre propre métabox (c'est-à-dire avec une liste déroulante).


Génial, c'est exactement ce dont j'avais besoin sans avoir à rendre la taxonomie hiérarchique. Merci
Alexander Holsgrove

Le problème avec cela est que les taxonomies non hiérarchiques et hiérarchiques ont une structure de données différente qui doit être sauvegardée. Pour savoir comment résoudre ce problème, voir ici gist.github.com/gschoppe/…
P. Galbraith

Cette solution ne crée pas de case à cocher ni de menu déroulant.
Dev

C'est énorme! Merci ... Je n'ai jamais su que cela existait
Sam Holguin

-1

si vous voulez changer le terme du plugin existant en case à cocher, vous devez modifier la register_taxonomy () existante.

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' est le nom du terme utilisé sur register_taxonomy ('roomtype', array (.....

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.