自定义帖子类型的自定义分类法未显示在WordPress管理员列中

问题描述:

我创建了一个名为“protocols”的自定义帖子类型,并为该自定义帖子类型注册了一些分类法,以允许客户可过滤/可搜索的帖子列表。出于某种原因,分类标准类别未显示在自定义帖子类型的管理屏幕帖子列表中。这里的屏幕截图:http://demo.agexpressions.com/img/admin-screen.png自定义帖子类型的自定义分类法未显示在WordPress管理员列中

我在注册所有分类法时使用了'show_admin_column'=> true行,但列仍然为空!希望有人比我锐利的眼睛和更多的知识可以帮助我诊断这个问题!代码如下:

// hook into the init action and call create_protocol_taxonomies when it fires 
add_action('init', 'create_protocol_taxonomies', 0); 

// create three taxonomies - primary and disease categories, and status for the post type "protocols" 

function create_protocol_taxonomies() { 
// Add new taxonomy for Primary Category 
$primarylabels = array(
    'name'    => _x('Primary', 'taxonomy general name'), 
    'singular_name'  => _x('Primary', 'taxonomy singular name'), 
    'search_items'  => __('Search Primary'), 
    'all_items'   => __('All Primaries'), 
    'menu_name'   => __('Primary'), 
); 

$primaryargs = array(
    'hierarchical'  => true, 
    'labels'   => $primarylabels, 
    'show_ui'   => true, 
    'show_admin_column' => true, 
    'query_var'   => true, 
    'rewrite'   => array('slug' => 'primary'), 
); 

register_taxonomy('primary', 'protocols', $primaryargs); 

// Add new taxonomy for Disease Category 
$diseaselabels = array(
    'name'    => _x('Disease', 'taxonomy general name'), 
    'singular_name'  => _x('Disease', 'taxonomy singular name'), 
    'search_items'  => __('Search Disease'), 
    'all_items'   => __('All Diseases'), 
    'menu_name'   => __('Disease'), 
); 

$diseaseargs = array(
    'hierarchical'  => true, 
    'labels'   => $diseaselabels, 
    'show_ui'   => true, 
    'show_admin_column' => true, 
    'query_var'   => true, 
    'rewrite'   => array('slug' => 'disease'), 
); 

register_taxonomy('disease', 'protocols', $diseaseargs); 

// Add new taxonomy for Status 
$statuslabels = array(
    'name'    => _x('Status', 'taxonomy general name'), 
    'singular_name'  => _x('Status', 'taxonomy singular name'), 
    'search_items'  => __('Search Status'), 
    'all_items'   => __('All Status'), 
    'menu_name'   => __('Status'), 
); 

$statusargs = array(
    'hierarchical'  => true, 
    'labels'   => $statuslabels, 
    'show_ui'   => true, 
    'show_admin_column' => TRUE, 
    'query_var'   => true, 
    'rewrite'   => array('slug' => 'status'), 
); 

register_taxonomy('status', 'protocols', $statusargs); 
} 


add_action('init', 'protocols_init', 0); 
// Creates Protocols Custom Post Type 
function protocols_init() { 
$protocolsargs = array(
    'label' => 'Protocols', 
    'public' => true, 
    'show_ui' => true, 
    'capability_type' => 'post', 
    'hierarchical' => false, 
    'rewrite' => array('slug' => 'protocol'), 
    'query_var' => true, 
    'menu_icon' => 'dashicons-book-alt', 
'menu_position' => 5, 
'has_archive' => true, 
'taxonomies' => array('primary', 'disease', 'status'), 
    'supports' => array(
     'title', 
     'editor', 
     'revisions') 
    ); 
register_post_type('protocols', $protocolsargs); 
} 

注意到别的也。如果您点击帖子上的“快速编辑”链接并为其分配类别,则会显示在列中!

但是,如果你去到全屏幕编辑,你刚分配的类别是有的,但如果更改,甚至不进行修改更新,类别再次管理员列消失......

很困惑,有人请看看我的代码,看看我做错了什么!我已经完成了几个小时的研究,在wordpress支持论坛和codex上搜索,并做出了简短的介绍。在wordpress论坛上没有任何帮助,它已经上涨了一个多月。

它可能是一个简单的功能失序?自定义帖子类型或分类标准是否启动得太晚?

其实,我找到了解决方案。通过phpAdmin搜索数据库后,我注意到有分类术语的重复。较早的版本来自第一次创建自定义帖子类型和分类法失败的尝试。

我删除了数据库中的所有定制分类术语,然后又回到Wordpress并重新创建它们,实质上给了我一个新的术语列表。他们现在在管理员帖子列表中以及在网站上正确显示。

现在,我仍然不确定为什么重复的条款是问题,只是他们是。也许从我第一次失败的尝试中得到的剩余术语与新术语相冲突,因为术语名称是相同的,但它们被附加到不同的分类法中。

您需要填充列内容。见http://codex.wordpress.org/Plugin_API/Action_Reference/manage_ $ post_type_posts_custom_column

+0

我感谢您的意见!看起来问题是我的数据库中的重复分类术语来自先前尝试创建自定义帖子类型和分类法的失败。我相信你所指的链接是隐藏和显示管理员屏幕中的整个列。这(如果我理解正确的话)可以通过在注册分类法时使用'show-admin-column'=> true参数来实现。虽然谢谢! – 2015-02-06 22:09:33