【问题标题】:WordPress get_terms not outputting URLWordPress get_terms 不输出 URL
【发布时间】:2013-05-23 21:00:24
【问题描述】:

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

?>

【问题讨论】:

  • 尝试echo $tag-&gt;term_id 变量 - 它的输出是什么?
  • 它只显示15。模板中有上述代码的页面的帖子ID是5,所以我认为不是问题所在。 (ID为15的帖子完全不相关。)
  • 请按照我在回答中的建议替换该行 - 告诉我它是否有效。

标签: php wordpress


【解决方案1】:

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

因此,任何与tags 相关的功能都将无法正常工作。 要获取 term 的 url,请使用 get_term_link() 函数。

只需将当前行替换为:

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

应该可以。

【讨论】:

  • 太好了,谢谢。是的,我在第一条评论中感到困惑。
  • 我之前尝试过更改它,但我将 $tag 部分保留为 $tag->term_id。再次感谢。
  • WP 可能会让人困惑,任何时候我不确定我要去codex (docs)
猜你喜欢
  • 2017-12-10
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
相关资源
最近更新 更多