我有以下PHP代码,我用它来输出所有自定义分类值的列表,然后按字母顺序将它们按首字母分组。除了没有输出URL之外,这工作正常。有人能帮忙吗?
<?php
$list = '';
$tags = get_terms( 'film-categories' );
$groups = array();
if( $tags && is_array( $tags ) ) {
foreach( $tags as $tag ) {
$first_letter = strtoupper( $tag->name[0] );
$groups[ $first_letter ][] = $tag;
}
if( !empty( $groups ) ) {
foreach( $groups as $letter => $tags ) {
$list .= '<div class="cat-group"><h3>' . apply_filters( 'the_title', $letter ) . '</h3>';
$list .= '<ul>';
foreach( $tags as $tag ) {
$url = esc_attr( get_tag_link( $tag->term_id ) );
$name = apply_filters( 'the_title', $tag->name );
$list .= '<li><a href="' . $url . '">' . $name . '</a></li>';
}
$list .= '</ul></div>';
}
}
} else $list .= '<p>Sorry, but no tags were found</p>';
echo $list;
?>
答案 0 :(得分:1)
我害怕你很困惑。
根据你的第二行 - 你提取自定税的条款而不是标签。
$tags = get_terms( 'film-categories' );
因此,与tags
相关的任何功能都无法正常工作。
要获取字词的网址,请使用get_term_link()函数。
只需用以下代码替换当前行:
$url = esc_attr( get_term_link( $tag ) );
应该工作。