Liste taxonomies dans un menu déroulant dans le panneau d'options de thème
-
16-10-2019 - |
Question
Je veux montrer un menu déroulant dans le panneau de l'option pour le choix d'une « catégorie vedette de produit » qui est une taxonomie personnalisée. Je fais de cette façon:
register_taxonomy("Catalogs",
array("kmproduct"),
array("hierarchical" => true,
"label" => "Catalogs",
"singular_label" => "catalog",
"rewrite" => true ));
et dans mon theme_options.php
j'ai:
...
array( "name" => "Homepage featured category",
"desc" => "Choose a category from which featured posts are drawn",
"id" => $shortname."_feat_cat",
"type" => "select",
"options" => $wp_tax,
"std" => "Choose a category"),
et je ne peux pas obtenir la liste des taxonomies:
$args=array( 'name' => 'Catalogs');
$output = 'names'; // or objects
$taxonomies = get_taxonomies($args,$output);
$wp_tax = array();
foreach ($taxonomies as $category_list ) {
$wp_tax[$category_list->ID] = $category_list->name;
}
array_unshift($wp_tax, "Choose a category");
a tort Quoi? Je ne peux pas le faire au travail: (
La solution
taxonomie est un groupe de termes . Je pense que vous avez enregistré une taxonomie Catalogues , et maintenant vous voulez répertorier tous les termes de taxonomie. Vous le faites avec la fonction get_terms()
, pas get_taxonomies()
.
Donc, votre tableau de $wp_tax
doit être rempli comme ceci:
$wp_tax = array(-1 => 'Choose a category');
$catalog_terms = get_terms('Catalogs');
if ($catalog_terms) {
foreach ($catalog_terms as $catalog_term) {
$wp_tax[$catalog_term->term_id] = $catalog_term->name;
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange