分类-模板未加载

时间:2018-01-31 作者:Paul

我已注册分类:

$taxonomySetup = [
    \'label\' => __(\'Products catalog\'),
    \'has_archive\' => false,
    \'hierarchical\' => true,
    \'rewrite\' => [
        \'slug\' => __(\'catalog\'),
        \'hierarchical\' => true,
        \'with_front\' => true
    ],
];
register_taxonomy(\'products\', [\'product\'], $taxonomySetup);


add_action(\'init\', \'addTaxonomiesToPages\');
function addTaxonomiesToPages() {
    register_taxonomy_for_object_type(\'products\', \'product\');
}
链接到CPT:

register_post_type(\'product\', [
    \'labels\' => [
        // labels definitions
    ],
    \'public\'                => true,
    \'has_archive\'           => true,
    \'menu_icon\'             => \'dashicons-archive\',
    \'show_in_nav_menus\'     => true,
    \'taxonomies\'            => [\'products\'],
    \'publicly_queryable\'    => false,
    \'rewrite\' => [
        \'pages\' => true,
    ],
    \'supports\' => [
        // supported items
    ],
]);
现在,我有了类别(对于此分类法)结构和结果:

  • http://example.com/catalog - Not Found
  • http://example.com/catalog/subcategory-1 - taxonomy.php
  • http://example.com/catalog/subcategory-1/subcategory-2 - taxonomy.php
  • http://example.com/catalog/subcategory-1/subcategory-2/subcategory-3 - taxonomy.php
  • http://example.com/catalog/subcategory-1/subcategory-2/subcategory-3/subcategory-4 - taxonomy.php
我为它创建了许多文件:

  • taxonomy.php
  • taxonomy-products.php
  • taxonomy-product.php
  • taxonomy-catalog.php
为什么它总是加载基本分类法模板,而对于主目录,它总是呈现404 错误

顺便问一下,我如何控制应该为子类别加载哪个模板(我说的是子级别,而不是命名)?

2 个回复
SO网友:1naveengiri

子类别/子术语没有直接模板。两者都可以在taxonomy.php 我不知道您要求为子类别/子术语单独设置一个页面。但你可以在分类法上处理这个问题。php

if( subcat ){
 // show sub category view
}elseif(parent) {
 // show parent category view 
}
或者检查与您的请求更相关的答案Different template for subcategories

SO网友:Andrew

WordPress为分类术语提供归档页面,而不是分类术语。像catalog 是分类学的鼻涕虫http://example.com/catalog 返回404是预期的行为。

解决这种情况的一个方法是使用slug创建一个新页面catalog, 然后使用page-catalog.php 带有自定义查询和循环的模板,以满足您的需要。

http://example.com/product 可能会提供您想要的。此页将使用archive-product.php.

就像你一样rewrite 在您的register_taxonomoy 调用您将需要刷新重写以使新规则生效。

结束

相关推荐

Taxonomy Templates

我不太明白如何链接到我的分类法模板。我需要做一个临时页面并从那里查询我的条款吗?我当前正在使用分类层次结构:Taxonomy$labels = array( \'name\' => __( \'Product Categories\' ), \'singular_name\' => __( \'Product Category\' ), \'search_items\' =>