在自定义帖子类型的管理列表中显示自定义分类

时间:2012-11-11 作者:René Schubert

我试图在自定义帖子类型(“站点”)的管理区域的概览表中列出自定义分类法(“流派”)的术语。为了实现这一点,我在我的主题函数中尝试了以下代码。php文件:

register_taxonomy(\'genre\', \'station\', array(
    \'labels\' => array(
        \'name\' => _x(\'Genres\', \'taxonomy general name\', \'loudfm_theme\'),
        \'singular_name\' => _x(\'Genre\', \'taxonomy singular name\', \'loudfm_theme\'),
        \'search_items\' => __(\'Search Genres\', \'loudfm_theme\'),
        \'popular_items\' => __(\'Popular Genres\', \'loudfm_theme\'),
        \'all_items\' => __(\'All Genres\', \'loudfm_theme\'),
        \'parent_item\' => __(\'Parent Genre\', \'loudfm_theme\'),
        \'parent_item_colon\' => __(\'Parent Genre:\', \'loudfm_theme\'),
        \'edit_item\' => __(\'Edit Genre\', \'loudfm_theme\'),
        \'update_item\' => __(\'Update Genre\', \'loudfm_theme\'),
        \'add_new_item\' => __(\'Add New Genre\', \'loudfm_theme\'),
        \'new_item_name\' => __(\'New Genre Name\', \'loudfm_theme\')
    ),
    \'hierarchical\' => true
));
add_filter(\'manage_station_posts_columns\', \'station_edit_columns\');
add_action(\'manage_posts_custom_column\',  \'station_custom_columns\');
function station_edit_columns($columns){
    $columns = array(
        \'cb\' => \'<input type="checkbox"/>\',
        \'title\' => __(\'Station Title\', \'loudfm_theme\'),
        \'description\' => __(\'Description\', \'loudfm_theme\'),
        \'genre\' => __(\'Genre\', \'loudfm_theme\')
    );
    return $columns;
}
function station_custom_columns($column){
    global $post;
    switch ($column) {
        case \'description\':
            the_excerpt();
            break;
        case \'genre\':
            $genre = get_terms(array(
                \'taxonomy\' => \'genre\',
                \'include\' => get_post_meta($post->ID, \'maingenre\', true)
            ));
            echo \'<a href="\' . get_term_link($genre[0]) . \'" title="\' . sprintf(__(\'View all stations with the genre %s\', \'loudfm_theme\'), $genre[0]->name) . \'">\' . $genre[0]->name . \'</a>\';
    }
}
在我的例子中,我不想简单地列出一个电台的所有选定流派,而只想列出id存储在自定义帖子类型的“maingree”字段中的主要流派。这就是为什么我要用get_terms 具有“include”参数的函数。但遗憾的是,我得到了一个“无效分类法”错误(作为WP\\u错误对象)。使用get_the_term_list 作品没有错误,但使用此功能,我无法仅显示主要流派。

谁能告诉我,为什么get_terms 不在这里工作,我怎样才能让它工作?非常感谢。

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

总是check the codex - get_terms( $taxonomies, $args ) - 您的代码应为:

$genre = get_terms( \'genre\', array(
    \'include\' => get_post_meta( $post->ID, \'maingenre\', true ),
));

结束

相关推荐

如何使用wp_INSERT_TERMS将术语添加到分类中?

我有一个巨大的excel位置数据库,我想将其作为术语添加到我当前的分类法中。然而,我不知道最好的方法是什么,因为手动插入可能需要数周的时间<我已经看过了:http://codex.wordpress.org/Function_Reference/wp_insert_term但不确定如何正确使用它。我的分类法叫做:location我想添加以下示例术语:London, Glasgow, Bristol, Bournemouth这可能吗?此外,如果存在层次关系,是否也可以自动添加?例如:伦敦(父母)、肯辛