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

Php 自定义帖子类型的自定义分类未显示在Wordpress管理列中,php,wordpress,custom-post-type,custom-taxonomy,Php,Wordpress,Custom Post Type,Custom Taxonomy,我创建了一个名为protocols的自定义帖子类型,并为该自定义帖子类型注册了一些分类法,以允许客户提供一个可过滤/可搜索的帖子列表。出于某种原因,分类类别没有显示在自定义帖子类型的管理屏幕帖子列表中。截图如下: 我在注册所有分类法时使用了'show\u admin\u column'=>true行,但这些列仍然是空的!希望有人有敏锐的眼睛和更多的知识比我可以帮助我诊断这个问题!代码如下: // hook into the init action and call create_protocol

我创建了一个名为
protocols
的自定义帖子类型,并为该自定义帖子类型注册了一些分类法,以允许客户提供一个可过滤/可搜索的帖子列表。出于某种原因,分类类别没有显示在自定义帖子类型的管理屏幕帖子列表中。截图如下:

我在注册所有分类法时使用了
'show\u admin\u 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搜索数据库后,我注意到分类术语有重复项。较旧的版本来自第一次创建自定义post类型和分类的失败尝试

我从数据库中删除了所有自定义分类术语,然后返回Wordpress并再次创建它们,基本上给了我一个新的术语列表。它们现在正确地显示在管理员帖子列表中,以及站点本身


现在,我仍然不确定为什么会出现重复条款的问题,只是它们确实存在。可能我第一次尝试失败后的剩余术语与新术语冲突,因为术语名称相同,但它们附加到不同的分类法。

我感谢您的输入!问题似乎是我的数据库中的分类术语与以前创建自定义文章类型和分类的失败尝试中的分类术语重复。我相信你所指的链接是为了隐藏和显示管理屏幕中的所有列。这(如果我理解正确的话)可以通过在注册分类法时使用'show admin column'=>true参数来完成。谢谢你!