我正在构建我的第一个插件,它包含一个名为" feature"的自定义帖子类型(CPT)。我试图访问"存档"这个CPT的页面,但我得到了#34;错误404"使用除默认配置之外的任何永久链接配置。
当我使用"默认"永久链接的配置"存档"返回来自模板,而不是我的插件中的那个。我做错了什么?
function fmp_create_post_feature() {
register_post_type( 'feature',
array(
'labels' => array(
'name' => 'Features' ,
'singular_name' => 'Feature',
'edit_item' => __( 'Edit' ) . ' Feature',
'add_new' => __( 'Add' ) . ' nova',
'add_new_item' => __('Add').' nova Feature',
'menu_name' => 'Feature with Modal Popup',
'all_items' => 'Features',
'rewrite' => array( 'slug' => 'feature' ),
),
'public' => true,
'menu_icon' => 'dashicons-desktop',
'supports' => array(
'title',
'editor',
'thumbnail'
),
'taxonomies' => array(
'feature',
),
)
);
flush_rewrite_rules();
}
add_action( 'init', 'fmp_create_post_feature' );
上面的代码是cpt注册和分类法注册下面的代码
add_action( 'init', 'fmp_create_tax' );
function fmp_create_tax() {
register_taxonomy(
'feature',
array(
'label' => 'Feature',
'rewrite' => array( 'slug' => 'feature' ),
'hierarchical' => true,
)
);
}
答案 0 :(得分:0)
这是因为您在注册自定义帖子类型时没有定义'has_archive' => true,
。
从WordPress引用。
has_archive(boolean或string)(可选)启用帖子类型存档。
默认情况下,将$ post_type用作存档slug。默认值:false
注意:
如果启用了重写,则会生成正确的重写规则。也用 重写以改变使用的slu ..
所以你的寄存器帖子类型数组将是
register_post_type( 'feature',
array(
'labels' => array(
'name' => 'Features' ,
'singular_name' => 'Feature',
'edit_item' => __( 'Edit' ) . ' Feature',
'add_new' => __( 'Add' ) . ' nova',
'add_new_item' => __('Add').' nova Feature',
'menu_name' => 'Feature with Modal Popup',
'all_items' => 'Features',
'rewrite' => array( 'slug' => 'feature' ),
),
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-desktop',
'supports' => array(
'title',
'editor',
'thumbnail'
),
'taxonomies' => array(
'feature',
),
)
);