在主题的选项面板中的下拉列表中列出分类

时间:2010-11-01 作者:Oterox

我想在选项面板中显示一个下拉列表,用于选择“特色产品类别”,这是一种自定义分类法。我这样做:

register_taxonomy("Catalogs",
    array("kmproduct"),
    array("hierarchical" => true,
          "label" => "Catalogs",
          "singular_label" => "catalog",
          "rewrite" => true   ));
在我的theme_options.php 我有:

...
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"),
我无法获取分类列表:

$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");
怎么了?我无法让它工作:(

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

分类学是一组术语。我想您已经注册了分类法目录,现在您想列出该分类法中的所有术语。您可以使用函数来执行此操作get_terms(), 不get_taxonomies().

所以你的$wp_tax 数组应按如下方式填充:

$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;
    }
}

结束

相关推荐