Question

J'ai créé un type de poste personnalisé et a ajouté diverses boîtes de méta / champs à ce type de poste personnalisé. Tout fonctionne excellent, sauf pour un élément ...

Au lieu d'utiliser l'interface par défaut pour la sélection d'une taxonomie je voudrais avoir juste un menu déroulant pour l'utilisateur à sélectionner.

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

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

quelqu'un n'arrive d'avoir un code d'échantillon qui me permettrait de remplir cette tâche?

Était-ce utile?

La solution 3

Je lui ai répondu à cette question sur un autre poste:

Autres conseils

Voici comment je l'ai fait.

<?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 du code pour ce faire, mais il doit être simple: créer un menu déroulant nommé tax_input[your_taxonomy_name], où les valeurs sont de id si votre taxonomie est hiérarchique (comme les catégories), les valeurs sinon (comme des étiquettes). Si vous utilisez ce nom, je pense qu'il est enregistré automatiquement, sans code supplémentaire de vous. Vous pouvez créer le menu déroulant avec la fonction wp_dropdown_categories, passer l'option selected avec le terme de taxonomie qui doit être sélectionné. La fonction de rappel qui crée la boîte de méta obtient le paramètre $post, de sorte que vous pouvez obtenir le terme de taxonomie actuelle à partir de là.

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

scroll top