2011-01-07 48 views
3

尽管大量文档和示例在线,但我似乎无法使此简单函数正常工作。我不知道我在做什么错,但是,这是不正常工作。任何人都可以发现我在这里失踪的事吗?get_tags()函数未正确排序

我正在寻找一个自定义标签云,这就是为什么我不使用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) 

正如你所看到的,它们是由数排序,而不是名字。我不知道为什么。我的论点似乎没有问题。想法?

回答

0

我发现这个问题,同时试图解决类似的问题......原来我的代码只是有一个小的错字('orderby'而不是'orderby')。但我发现了一些可以帮助你的东西。

看起来好像这有时是由插件干扰您的查询造成的。尝试禁用您的插件,看看这是否解决了这个问题。

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>";  
    }