自定义分类术语页面中的当前分类项
Current taxonomy item in custom taxonomy term page
我有一个名为 trailer_type
的自定义分类法,其中包含术语 long
和 short
。访问 my_site/trailers/short
(由模板 taxonomy-trailer_type.php
提供支持的页面)时,我以这种方式显示我的分类术语:
$terms = get_terms( 'trailer_type' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
echo '<ul>';
foreach ( $terms as $term ) {
echo '<li><a href="' . get_term_link( $term ) . '" title="' . sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
}
效果很好,但是有没有简单的方法来添加 "current" class?例如,如果我在 "long" 页面上,我需要 "long" 才能在此菜单中包含 "current" class。
您需要查看查询对象。有几种方法,这里是我倾向于使用的方法: $wp_query->queried_object
- this returns,顾名思义,查询的对象。
在你的情况下,像这样的事情应该有效:
$curTerm = $wp_query->queried_object;
$terms = get_terms( 'trailer_type' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
echo '<ul>';
foreach ( $terms as $term ) {
$classes = array();
if ($term->name == $curTerm->name)
$classes[] = 'current';
echo '<li class="'. implode(' ',$classes) .'"><a href="' . get_term_link( $term ) . '" title="' . sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
}
我将 类 设置为数组只是为了将来扩展。您也可以立即将其设置为字符串。
尝试使用
get_query_var( 'term' )
并检查
if ($term->name == get_query_var( 'term' )){
//make something
}
我有一个名为 trailer_type
的自定义分类法,其中包含术语 long
和 short
。访问 my_site/trailers/short
(由模板 taxonomy-trailer_type.php
提供支持的页面)时,我以这种方式显示我的分类术语:
$terms = get_terms( 'trailer_type' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
echo '<ul>';
foreach ( $terms as $term ) {
echo '<li><a href="' . get_term_link( $term ) . '" title="' . sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
}
效果很好,但是有没有简单的方法来添加 "current" class?例如,如果我在 "long" 页面上,我需要 "long" 才能在此菜单中包含 "current" class。
您需要查看查询对象。有几种方法,这里是我倾向于使用的方法: $wp_query->queried_object
- this returns,顾名思义,查询的对象。
在你的情况下,像这样的事情应该有效:
$curTerm = $wp_query->queried_object;
$terms = get_terms( 'trailer_type' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
echo '<ul>';
foreach ( $terms as $term ) {
$classes = array();
if ($term->name == $curTerm->name)
$classes[] = 'current';
echo '<li class="'. implode(' ',$classes) .'"><a href="' . get_term_link( $term ) . '" title="' . sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
}
我将 类 设置为数组只是为了将来扩展。您也可以立即将其设置为字符串。
尝试使用
get_query_var( 'term' )
并检查
if ($term->name == get_query_var( 'term' )){
//make something
}