首先,WordPress不提供任何内置解决方案来显示特定帖子类型和特定分类术语的帖子。我说的是get_term_archive_link_for_post_type( $term, $post_type )
...左右
所以你必须自己做。
当然,您可以创建一个页面,将其命名为Construction Projects,为其提供一个新的页面模板,在该模板中设置自定义查询并精确显示所需内容。但这甚至没有必要。
WordPress可以处理多个查询变量—其中之一是您的分类法创建的。
假设您有一个带有slug的自定义Post类型projects
.
然后您有一个自定义的分类法,其中包含slugproject_type
.<你有一个关于鼻涕虫的术语construction
在这个分类学中。
然后访问?post_type=projects&project_type=construction
将显示(至少)将构造设置为项目类型的所有项目的存档。
WordPress会将此查询解释为术语存档,然后根据您的永久链接设置重写URL,并将帖子类型作为查询变量附加到URL。在通常的情况下,这将导致/project_type/construction?post_type=projects
.
注意:您可以显式更改自定义分类法的查询变量。在这种情况下,使用taxonmy slug作为查询变量(例如。,project_type=construction
) 不会再工作了。您必须使用使用显式定义的查询变量register_taxonomy
那么
下面是为特定分类法的所有术语设置链接列表的一些示例:
$args = array(
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'hide_empty\' => TRUE,
\'fields\' => \'all\',
);
$terms = get_terms( \'project_type\', $args);
if (
! is_wp_error( $terms )
&& ! empty( $terms )
) {
echo \'<ul>\';
foreach ( $terms as $term ) {
$url = get_term_link( $term );
if ( is_wp_error( $url ) ) {
continue;
}
$url = add_query_arg( \'post_type\', \'projects\', $url );
printf(
\'<li><a href="%s">%s</a></li>\',
$url,
$term->name
);
}
echo \'</ul>\';
}