【发布时间】:2017-10-27 15:04:17
【问题描述】:
我有一个自定义帖子类型 - 诗歌。 我创建了两个分类法——城市和作者。 当我点击“巴黎”菜单项时 - 我需要显示该城市的所有作者和他的诗歌列表。 怎么做 ? 谢谢。
【问题讨论】:
标签: wordpress custom-post-type taxonomy custom-taxonomy
我有一个自定义帖子类型 - 诗歌。 我创建了两个分类法——城市和作者。 当我点击“巴黎”菜单项时 - 我需要显示该城市的所有作者和他的诗歌列表。 怎么做 ? 谢谢。
【问题讨论】:
标签: wordpress custom-post-type taxonomy custom-taxonomy
您可能想看看Codex entry for WP Query。这为您提供了创建自定义 WordPress 查询所需的所有信息。包括分类参数。
您希望使用 AND 关系传递给税务查询参数。类似于这个例子的内容:
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'city',
'field' => 'slug',
'terms' => 'london',
),
array(
'taxonomy' => 'author',
'field' => 'slug',
'terms' => 'dickens',
),
),
);
$query = new WP_Query( $args );
编辑:10/30/17 以下评论
如果您将作者的保存为帖子元数据,您可以按此排序。但是,如果您的作者也是分类法,它会变得有点棘手,因为没有一种按分类法排序的好方法。看到这个related question。
相反,我们可以使用 get_terms 获取所有作者分类术语。
$authors = get_terms( 'author', array(
'hide_empty' => false,
) );
这为我们提供了至少分配了一篇文章的所有作者术语。
现在我们有了可以遍历每个作者并运行查询以获取该作者在该城市的诗歌的术语。像这样:
foreach ( $authors as $author ) {
$args = array(
'post_type' => 'poem',
'tax_query' => array(
relation => 'AND',
array(
'taxonomy' => 'city',
'field' => 'slug',
'terms' => 'london',
),
array(
'taxonomy' => 'author',
'field' => 'term_id',
'terms' => $author->term_id,
),
),
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post();
// Put your post markup here
endwhile;
endif; wp_reset_query();
}
【讨论】:
如果你不擅长编码,你可以使用免费的内容视图插件,并结合你必须结合的东西。我是这样开始的。
【讨论】: