get_tags()函数没有正确排序

时间:2011-01-07 21:16:36

标签: php wordpress

尽管在线提供了大量文档和示例,但我似乎无法使这个简单的功能正常工作。我不知道我做错了什么,但是,这不能正常工作。谁能发现我在这里缺少的东西?

我正在制作自定义标签云,这就是为什么我没有使用wp_tag_cloud()。

$tags = get_tags( array('orderby' => 'name', 'order' => 'ASC'));
    foreach($tags as $tag) {
        echo "<li><a href=\""
                    .get_tag_link($tag->term_id)."\">"
                    .ucwords($tag->name)
                    ."</a> ($tag->count related page)</li>";    
    }

这会产生以下输出:

 - Black Box (3 related page)
 - Waste (2 related page)
 - Recycling (2 related page) 
 - Garbage (1 related page) 
 - Cheese (1 related page)
 - Blue Box (1 related page) 
 - Test (1 related page)

如您所见,它们按COUNT排序,而不是名称。我不知道为什么。我的论点似乎没问题。想法?

2 个答案:

答案 0 :(得分:1)

这个问题很老,但也许这有助于某人仍在寻找答案。

function sortOrder($a, $b) {
    if($a->name == $b->name){ return 0 ; }
    return ($a->name < $b->name) ? -1 : 1;
}

$tags = get_tags();
usort($tags, 'sortOrder');

    foreach($tags as $tag) {
        echo "<li><a href=\""
                    .get_tag_link($tag->term_id)."\">"
                    .ucwords($tag->name)
                    ."</a> ($tag->count related page)</li>";    
    }

答案 1 :(得分:0)

我在尝试解决类似的问题时发现了这个问题...结果我的代码只有一个小错字('orderby'而不是'orderby')。但我发现了一些可能对你有用的东西。

似乎这有时是由插件干扰您的查询引起的。尝试禁用插件,看看是否可以解决问题。