我有一个名为STORIES的自定义帖子类型。 在该帖子类型中,我有类别,因此每个STORY也被分配了这样的类别......
故事1(指定类别RED) 故事2(指定类别蓝色) 故事3(指定类别GREEN)等。
我需要显示一个列出类别的页面,点击后,然后列出该类别的帖子。
因此该页面将是一个包含...
的列表RED 蓝色 GREEN
什么模板可以控制这个列表?
然后我点击RED,它会转到一个只显示RED Stories的模板。
什么模板可以控制这个列表?
我猜我需要三个特定的模板? 一个名为template-stories.php,一个名为archive-stores.php,最后一个名为single-stories.php?
答案 0 :(得分:3)
你猜对了,首先你需要一个页面模板,你要打电话给你的条款,但是你需要通过他的分类来打电话,对吧?为此,你需要使用函数get_terms( $taxonomies, $args );
和函数get_term_link($term)
,您将获得当前术语的网址:
$args = array( 'hide_empty=0' );
$terms = get_terms( 'my_term', $args );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
$count = count( $terms );
$i = 0;
$term_list = '<p class="my_term-archive">';
foreach ( $terms as $term ) {
$i++;
$term_list .= '<a href="' . get_term_link( $term ) . '" title="' . sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">' . $term->name . '</a>';
if ( $count != $i ) {
$term_list .= ' · ';
}
else {
$term_list .= '</p>';
}
}
echo $term_list;
}
然后,您需要archive.php,其中您将显示与此当前术语相关联的所有帖子。
但首先你需要获得当前的术语,你可以使用get_term_by($field, $value, $taxonomy, $output, $filter)
函数来完成它。
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
现在你可以制作一个if语句:
if($term = 'red'){
the_title();
//Or get_template_part( 'content', 'stories' );
}else{
//...
}