web-dev-qa-db-fra.com

Type de message personnalisé - Menu déroulant Taxonomie?

J'ai créé un type de message personnalisé et ajouté diverses zones/champs de méta à ce type de message personnalisé. Tout fonctionne parfaitement sauf pour un élément ...

Au lieu d'utiliser l'interface par défaut pour sélectionner une taxonomie, j'aimerais simplement avoir un menu déroulant pour l'utilisateur.

L'idée ici est de permettre aux administrateurs d'ajouter des éléments de taxonomie pouvant être gérés de manière centralisée, mais pour qu'un poste spécifique ne soit associé qu'à une seule taxonomie.

De plus, je préférerais simplement ajouter ce menu déroulant dans l’une de mes boîtes à méta existantes.

Quelqu'un at-il un exemple de code qui me permettrait de mener à bien cette tâche?

5
NetConstructor.com

J'ai répondu à cette question sur un autre post: Économie de termes de taxonomie

1
NetConstructor.com

C'est comme ça que j'ai fait ça.

<?php $tax = get_object_taxonomies('TAXONOMY_NAME');
    $taxterms = get_terms( $tax, 'orderby=count&offset=1&hide_empty=0&fields=all' );
?>
<select name='tax' id='tax'>
    <option value='' <?php if (!count( $names )) echo "selected";?>>Select Term</option>
    <?php 
    foreach ( $taxterms as $term ) { 
        echo '<option value="' . $term->slug . '" selected>' . $term->name . '</option>',"\n"; 
    } ?>
</select>
4
jaredwilli

Je n'ai pas de code pour le faire, mais cela devrait être simple: créez un menu déroulant nommé tax_input[your_taxonomy_name], où les valeurs sont id si votre taxonomie est hiérarchique (comme les catégories), si ce n'est pas le cas (comme les balises). Si vous utilisez ce nom, je pense qu'il est enregistré automatiquement, sans code supplémentaire de votre part. Vous pouvez créer le menu déroulant avec la fonction wp_dropdown_categories, passer l'option selected avec le terme de taxonomie à sélectionner. La fonction de rappel qui crée la boîte méta obtient le paramètre $post, de sorte que vous puissiez obtenir le terme de taxonomie actuel à partir de là.

Pour désactiver la boîte de méta qui serait normalement ajoutée, vous pouvez définir show_ui sur false lors de la création de la taxonomie ou supprimer la méta-boîte avant qu’elle ne soit dessinée (je pense que le crochet add_meta_boxes est un bon endroit). Il aura l'ID tagsdiv-your_taxonomy_name s'il n'est pas hiérarchique, ou your_taxonomy_namediv s'il l'est.

1
Jan Fabry