在自定义帖子类型管理页面上显示自定义分类的列

时间:2012-03-21 03:11:18

标签: wordpress custom-post-type custom-taxonomy

我想在我的自定义帖子类型管理窗口中添加一列来显示我的自定义分类。

@SarthakGupta提供的这个解决方案为我创建了这个列,但是既没有分类,也没有回应“No taxonomy set”消息: Showing custom taxonomy column in custom posts type listings

我在其他地方看到了类似的解决方案,对空分类专栏提出了类似的抱怨。

可能导致问题的原因是什么?这个解决方案是否有可能无法与WordPress 3.3一起使用?

感谢。

2 个答案:

答案 0 :(得分:22)

通过添加以下内容,您可以在注册自定义分类法时启用它:

'show_ui'           => true,
'show_admin_column' => true,

答案 1 :(得分:6)

我遇到了这个问题,发现用自定义查询替换WP函数get_the_terms效果更好 - 尝试(其中custtype是自定义帖子类型的名称):

// custom columns
add_filter("manage_edit-custtype_columns", "custtype_columns");
add_action("manage_posts_custom_column", "custtype_custom_columns",10,2);

function custtype_columns($columns){
    $columns = array(
        "cb" => "<input type=\"checkbox\" />",
        "title" => "Title",
        "slug" => "URL Slug",
        "custtype-type" => "Custom Taxonomy"
    );
    return $columns;
}

function custtype_custom_columns($column,$id) {
    global $wpdb;
        switch ($column) {
        case 'custtype-type':
            $types = $wpdb->get_results("SELECT name FROM $wpdb->posts LEFT OUTER JOIN $wpdb->term_relationships ON ID = object_id LEFT OUTER JOIN $wpdb->terms ON term_taxonomy_id = term_id WHERE ID = {$id}");
            foreach($types as $loopId => $type) {
                echo $type->name.', ';
            }
            break;
        case 'slug':
            $text = basename(get_post_permalink($id));
            echo $text;
            break;
        default:
            break;
        } // end switch
}

这有用吗?