0

我有以下 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;

?>
4

1 回答 1

1

恐怕你已经糊涂了。根据您的第二行 - 您正在获取关税条款而不是标签。 $tags = get_terms( 'film-categories' );

因此,任何相关的功能tags都无法正常工作。为了获取术语的 url,请使用get_term_link()函数。

只需将当前行替换为:

$url = esc_attr( get_term_link( $tag ) );

应该管用。

于 2013-05-23T13:00:24.827 回答