Wordpress - 存档自定义帖子类型只适用于默认永久链接配置

时间:2015-08-07 16:24:57

标签: wordpress custom-post-type archive permalinks

我正在构建我的第一个插件,它包含一个名为" 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,
    )
 );
}

1 个答案:

答案 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',
       ),

  )
);