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?
J'ai répondu à cette question sur un autre post: Économie de termes de taxonomie
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>
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.