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

use*_*100 5 wordpress custom-post-type custom-taxonomy

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

@SarthakGupta提供的这个解决方案为我创建了这个列,但是既没有分类也没有回应"No taxonomy set"消息: 在自定义帖子类型列表中显示自定义分类列

我已经看到其他地方发布过类似的解决方案,对空分类专栏提出了类似的抱怨.

可能导致问题的原因是什么?是否有可能此解决方案不适用于WordPress 3.3?

谢谢.

小智 23

从Wordpress 3.5开始,您可以在注册自定义分类时通过添加以下内容来启用它:

'show_ui'           => true,
'show_admin_column' => true,
Run Code Online (Sandbox Code Playgroud)


小智 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
}
Run Code Online (Sandbox Code Playgroud)

这有用吗?