Vous connaissez sans doute la fonction wp dropdown categories qui permet de créer un menu déroulant avec les catégories disponibles (voir les nombreux paramètres bien utiles). Ici, c’est un dérivé de cette fonction qui vous permettra de faire la même chose, mais avec vos customs taxo et surtout de personnaliser la liste déroulante (le select) avec les classes et autres attributs de votre choix.

Vous pouvez également utiliser cette fonction si vous avez un formulaire de soumission de post et d’édition de post en front.  En mode édition d’un post (lorsqu’il a été créé et donc qu’il a une ID), il vous suffira de passer en paramètre l’id de ce dernier pour que le dropdown sélectionne automatiquement la taxo voulue.

Voici les arguments qu’il est possible de passer dans cette fonction :

  • $taxonomy : le nom de la taxonomie
  • $name : le nom du select
  • $placeholder : le text à afficher par défaut sur le select
  • $pid : l’ID du post dont vous voulez remonter la taxo sélectionnée (facultatif).
  • les autres champs sont facultatifs
function custom_taxonomy_dropdown( $taxonomy, $name, $placeholder, $pid= 0, $orderby = 'date', $order = 'DESC', $limit = '-1') {
	$args = array(
		'orderby' => $orderby,
		'order' => $order,
		'number' => $limit,
		'hide_empty' => 0
	);
	$terms = get_terms( $taxonomy, $args );
	$name = ( $name ) ? $name : $taxonomy;
	$current_taxo = array();
	$current_taxo = wp_get_post_terms($pid, $name, array("fields" => "names"));
	if ( $terms ) {
		printf( '<select name="%s" id="active_%s" class="custom-taxo" cols="30" data-placeholder="%s">', $name, $name, $placeholder);
		print '<option value=""></option>';
		foreach ( $terms as $term ) {
			if ($current_taxo[0] == $term->name){
				printf( '<option value="%s" selected="">%s</option>', $term->slug, $term->name );
			} else {
				printf( '<option value="%s">%s</option>', $term->slug, $term->name );
			}
		}
		print( '</select>' );
	}
}

Article rédigé parBrice CAPOBIANCO

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager !

Coorganisateur des Meetups WordPress Rennes et fondateur de bweb.
Partager cet article

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Afficher les 3 commentaires

3 commentaires

  1. Bonjour je ne réussi pas à faire fonctionner votre code, pouvez-vous me guider, car j’aimerais bien faire une mise à jour de mes customs taxonomie en front end merci à l’avance

  2. bonsoir,

    est ce que ca fonctionne pour créer des listes déroulantes (par example animaux, je choisirais dans la liste chien) qui renvoi vers une sous liste plus détaillée (par exemple cocker) et enfin vers une page ( la page du cocker). je ne sais pas quel plugin je pourrais utiliser pour cela. peux tu m’aider ?