带有类别存档页面的 Wordpress 自定义 post 类型

Wordpress custom post type with categories archive page

我正在努力让我的自定义 post 类型使用我的自定义存档模板,希望有人能看到我哪里出错了并帮助我回到正轨吗?

这是我用来创建自定义 post 类型的代码:

add_action( 'init', 'news_post_type' );
function news_post_type() {
    register_post_type( 'news',
    array(
      'labels' => array(
        'name' => __( 'News' ),
        'singular_name' => __( 'News' )
      ),
      'capability_type' =>  'post',
      'has_archive' => true,
      'hierarchical' => true,
      'public' => true,
      'supports' => array('title','editor','excerpt','trackbacks','custom-fields','revisions','thumbnail','author','page-attributes',)
    )
  );
}
register_taxonomy( 'news_category', 'news',array('label' => __( 'Categories' ),'rewrite' => array( 'slug' => 'news/category' ),'hierarchical' => true, ) );

太棒了 URL returns: www.mysite.com/news/category/%the_category% 就像我想要的那样。

问题是我希望此 CPT 中的每个类别都使用我的自定义模板,但是当我创建一个名为 archive-news.php 的文件时,它被忽略了。但是,如果我创建一个名为 archive.php 的文件,那么它可以工作,但显然这适用于我不想要的所有其他 post 档案。

我没有正确命名模板文件吗?我创建 CPT 的方式有误吗?

如果有人能提供帮助,我们将不胜感激。

非常感谢

我已经检查了你的代码 因为它在我这边工作正常。 我想你在查看详细信息页面是哪个单 $posttype.php 文件。

在此实例中使用分类法模板,因此将我的文件命名为 taxonomy-news_category.php 允许我为自定义 post 类型中的所有类别创建自己的模板。

我还发现与自定义 post 类型同名的页面也会导致问题。所以总而言之,重命名页面或使用上面的分类模板。