问题描述
我有帖子类型’product’ 和分层分类’types’ 附加到它。在这个分类中,我有这样的术语:’dry-clean’,’washer’ 等。
在我的情况下,我需要显示,例如:
-
http://example.com/types/washer – > 显示所有子条款
-
http://example.com/types/washer/ {subterm} – > 显示所有帖子
我的问题是:
-
如何获得父条款的永久链接 URL?我尝试上面的 URL,但是导致 404 。
-
模板文件如何适用于这种问题?
-
taxonomy-types-washer.php
是否适合#1 的情况?还是应该创建taxonomy-types.php
并在那里创建逻辑? -
在我看来,在扫描 template hierarchy 之后,我可能需要
taxonomy-types-{term_parent}.php
列出所有子条款和taxonomy-types.php
以子条款列出所有产品。 -
最终要显示每个产品,我将不得不创建
single-product.php
-
-
在一个稍微无关的问题。我发现当我没有任何帖子时,
archive-{posttype}.php
不起作用。有没有解决方案? (我应该创造不同的问题,还是坚持这个)?
UPDATE
我检查了我的 rewrite_rules
选项,它并没有列出 [types] 。我不知道为什么为了测试,我把我的屁股变成 product-types
,冲洗固定链接,并列出这一点:
[product-types/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/([^/]+)/page/?([0-9]{1,})/?$] => index.php?types=$matches[1]&paged=$matches[2]
[product-types/([^/]+)/?$] => index.php?types=$matches[1]
所以我想现在注册了。我尝试加载 URL product-types/washer
它到 404. 我尝试加载 URL index.php?types=washer
。它也是 404. 现在,我有这个文件:
-
taxonomy-types-washer.php
-
taxonomy-types.php
所以,我不知道这个有什么问题:(
更新#2
我发现问题。这是因为我错过了'rewrite'=>array('hierarchical'=>true)
这是新的 rewrite_rules
:
[product-types/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/(.+?)/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/(.+?)/page/?([0-9]{1,})/?$] => index.php?types=$matches[1]&paged=$matches[2]
[product-types/(.+?)/?$] => index.php?types=$matches[1]
最佳解决方法
WP 3.1 之后支持这些类型的 URL:
register_taxonomy( 'types', 'post', array(
'hierarchical' => true,
'rewrite' => array( 'hierarchical' => true ),
...
);
记住在进行更改后刷新重写规则。
您将用于父项和子项的模板是 taxonomy-types.php:
$current_term = get_queried_object();
if ( 0 == $current_term->parent ) {
// it's a parent term; display it's child terms using wp_list_categories() etc.
} else {
// it's a child term; display the posts using The Loop etc.
}
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。