it-swarm.com.de

Listen Sie Taxonomien in einem Dropdown-Menü im Optionsfeld des Themas auf

Ich möchte ein Dropdown-Menü in der Optionsleiste anzeigen, um eine "empfohlene Produktkategorie" auszuwählen, bei der es sich um eine benutzerdefinierte Taxonomie handelt. Ich mache das so:

register_taxonomy("Catalogs",
    array("kmproduct"),
    array("hierarchical" => true,
          "label" => "Catalogs",
          "singular_label" => "catalog",
          "rewrite" => true   ));

und in meinem theme_options.php habe ich:

...
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"),

und ich kann die Taxonomienliste nicht bekommen:

$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");

Was ist falsch? Ich kann es nicht zum Laufen bringen :(

1
Oterox

Eine Taxonomie ist eine Gruppe von Begriffen . Ich denke, Sie haben eine Taxonomie Kataloge registriert, und jetzt möchten Sie alle Begriffe in dieser Taxonomie auflisten. Das machen Sie mit der Funktion get_terms() , nicht get_taxonomies() .

Ihr $wp_tax Array sollte also so gefüllt sein:

$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;
    }
}
3
Jan Fabry