如何为共享单个分类的两个帖子类型显示两个单独的分类归档?

时间:2014-06-04 作者:Marc

我有一个自定义的内容类型“products”,它与帖子共享类别分类法。我们使用帖子讨论和审查产品。其想法是有两个单独的URL:

讨论/类别/术语/:显示属于特定术语的帖子列表,其中包含从同一术语中提取的“相关产品”区域:显示属于该术语的产品列表,其中包含从同一术语中提取的“相关讨论”区域。我可以使用默认类别/存档模板,并为帖子提供永久链接,默认情况下会解决第一个问题。但是,由于每个分类法只有一个模板集,如何实现第二个?

以上URL都是示例,所有归档类型在初始前端/slug之后都可以理想地与正常的permalink结构一起工作。

看看类似的问题,我看到了使用两种不同分类法的建议,但到了WordPress 3.7,两种不同分类法的术语不能共享一个slug,因此对于非技术性站点管理者来说,将两者联系起来是有问题的。

我还知道如何使用get\\u query\\u var(“post\\u type”)来区分这两种帖子类型,但这并不能解决单独URL的问题。

非常感谢您的帮助!

1 个回复
SO网友:random_user_name

根据WordPress Codex

archive-{post_type}.php
因此,在您的情况下(取决于您的命名):

archive-products.php
如果您还有一个自定义的分类法归档,那么挑战在于如何构建归档,以表示正确的分类法模板。

如果需要自定义分类法归档,我建议您使用上面的post类型归档结构,然后在归档文件中,确定正在使用的分类法,并加载template part.

psuedo代码示例(在archive products.php上):

$tax = get_query_var( \'taxonomy\' );
$term = get_query_var( \'term\' );
if ($tax == \'your_taxonomy\') {
    get_template_part(\'my_slug\', \'my_name\');
} else {
    // get the default template part...
}

结束

相关推荐

Removing a taxonomy term

有一个名为wp\\u remove\\u object\\u terms的Wordpress函数,不幸的是,它似乎不起作用。我试图通过以下方法达到同样的目的 $post_terms = wp_get_object_terms( $post_id, $taxonomy ); if( $post_terms ){ if(($key = array_search($term_id, $po