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: (

Était-ce utile?

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
scroll top