我想在我的自定义帖子类型管理窗口中添加一列以显示我的自定义分类。
@SarthakGupta 提供的此解决方案为我创建了该列,但既不回应分类法也不回应“没有分类法集”消息: 在自定义帖子类型列表中显示自定义分类法列
我在其他地方看到过类似的解决方案,对空分类列也有类似的抱怨。
什么可能导致问题?这个解决方案是否可能不适用于 WordPress 3.3?
谢谢。
我想在我的自定义帖子类型管理窗口中添加一列以显示我的自定义分类。
@SarthakGupta 提供的此解决方案为我创建了该列,但既不回应分类法也不回应“没有分类法集”消息: 在自定义帖子类型列表中显示自定义分类法列
我在其他地方看到过类似的解决方案,对空分类列也有类似的抱怨。
什么可能导致问题?这个解决方案是否可能不适用于 WordPress 3.3?
谢谢。
从 Wordpress 3.5 开始,您可以在注册自定义分类时通过添加以下内容来启用它:
'show_ui' => true,
'show_admin_column' => true,
我遇到了这个问题,发现用自定义查询替换 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
}
那行得通吗?