最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Custom post type, global categories — what’s the template name?

programmeradmin3浏览0评论

The documentation for template hierarchy for custom post types (CPT) includes:

  1. Either for the CPT itself (archive-cptname.php)
  2. Or for custom taxonomies (taxonomy-taxonomyname.php)
  3. Or for overall categories (category-catname.php)

But it doesn't include the obvious "CPT, with global categories". What would that be? I tried something like archive-cptname-categoryname.php, but this doesn't work. Any pointers?

The documentation for template hierarchy for custom post types (CPT) includes:

  1. Either for the CPT itself (archive-cptname.php)
  2. Or for custom taxonomies (taxonomy-taxonomyname.php)
  3. Or for overall categories (category-catname.php)

But it doesn't include the obvious "CPT, with global categories". What would that be? I tried something like archive-cptname-categoryname.php, but this doesn't work. Any pointers?

Share Improve this question asked Aug 8, 2019 at 20:28 Khom NazidKhom Nazid 17110 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

Because there's no such thing.

If you use the same taxonomy for two or more post types then there isn't separate archives for each post type in that taxonomy's terms. There's a single archive for that taxonomy that lists posts of both post types. This might not work for built in taxonomies (categories and tags) though, as they are configured to only display posts. To display your post type on the category archive you'll need to use the pre_get_posts filter to add it:

add_filter(
    'pre_get_posts',
    function( $query ) {
        if ( $query->is_category() ) {
            $query->set( 'post_type', [ 'post', 'cptname' ] );
        }
    }
);

If you need separate archives for categories for each post type, then you need to register a separate taxonomy for your post type. Something like cptname_category. They won't share terms, but they will have separate archives.

发布评论

评论列表(0)

  1. 暂无评论