不同定制帖子类型的单一分类

时间:2017-07-26 作者:Mihai Papuc

我有两种自定义帖子类型:booksauthors. 他们都附加了一个自定义分类法-genres.

如何在fiction 流派

What would be the URL used and the name of the template?

我可以想出两种方法来做到这一点,但它们都有缺点,所以我正在寻找一种类似于WP模板层次结构的方法:访问site.com/genre/fiction/ 将调用此模板taxonomy-genre.php

<小时>Method 1: 使用自定义页面模板我将创建自定义页面模板,cpt-genre.php. 然后,我会为书中的每一种类型创建一个空白页,使用类似于books-fiction 等等在模板中,我阅读页面的片段,对其进行解释并进行查询以获取书籍fiction 流派
Result: 访问site.com/books-fiction 将得到cpt-genre.php, 模板将根据页面的slug显示数据
Downside: 难以管理

<小时>Method 2: 将查询字符串添加到分类URL,在分类书籍中阅读。php和分类法作者。php和modify WP\\u Query,只显示上述流派中的书籍/作者
Result: 访问site.com/books/?genre=fiction 会得到taxonomy-books.php, 模板将根据查询字符串显示数据
Downside: URL不干净,而且不利于SEO

那么,对于新方法,或者至少对于缓解上述方法缺点的方法,还有其他想法吗?

2 个回复
SO网友:ottomanhWho

我想这就是你正在寻找的。。。必须同时使用post_类型和tax_查询来筛选查询

 $query = new WP_Query( array(
    \'post_type\' => \'books\',          // name of post type.
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'fiction\',   // taxonomy name
        )
    )
) );

while ( $query->have_posts() ) : $query->the_post();
    // do stuff here....
endwhile;

/**
 * reset the orignal query
 * we should use this to reset wp_query
 */
wp_reset_query();

SO网友:Anastis

同样,您是否需要只显示每个流派的作者?

如果没有,那么你可以pre_get_posts 在以下情况下,只需从查询的帖子类型中删除作者帖子类型(或将整个内容重新设置为books)is_tax( \'genre\' ) 是真的。

结束

相关推荐

URL rewriting taxonomy term

我正在为接下来的几个小时寻找解决方案,我不知道这是否适用。我有1个Custom Taxonomy \"Years\" 对于Post Type \"Post (default)\". 分类法有两个术语:\"2014\" 和\"2015\".我已经从类别中选择了一些帖子\"news\" 使用两个不同的分类术语。这显示了两个分类术语的所有帖子:http://website.com/category/news/ 当我想显示类别中的帖子时\"news\" 使用分类术语\"2014\" 我使用以下方法:ht