coauthors_wp_list_authors函数的排序输出 - 合著者加插件Wordpress


Sorting output of coauthors_wp_list_authors function - Co-Authors Plus plugin Wordpress

合著者Plus插件有一个名为coauthors_wp_list_authors()的函数,可以吐出网站上使用的所有合著者的列表。它接受许多与标准wordpress函数相同的参数,wp_list_authors()

除非它不接受"订单"或"订购者"。(这是它接受的内容列表(。因此,如果没有这些参数,我如何自定义作者的排序顺序?

我的用法是一个"作者"页面,其中列出了网站上的每个合著者。默认排序似乎是创建共同作者的日期。

我的函数如下所示:

function display_authors() {
  $author_list = coauthors_wp_list_authors('number=500&echo=0');
  ?>
    <div class="author_list"><ul><?php return $author_list ?></ul></div>
  <?php
}

谢谢!

很有趣。我也想做同样的事情。我向存储库提交了拉取请求,以便能够过滤从get_terms返回的作者数组。如果这被拉取,就像在coauthors_wp_list_authors_array上添加一个过滤器并将该数组过滤到您想要的顺序一样简单。在那之前...

---更新!(提示未解之谜更新音乐( ---

好的,所以看起来拉取请求已合并,并且已部署到 Automattic 的 VIP 插件的公共 SVN 存储库中,但他们尚未更新 .org 插件,因此请随时缠着他们更新它:-(

为谨慎起见,我将复制我对 wordpress.org 论坛帖子的回复,例如,按display_name排序:

好的,所以,这是未经测试的,但应该有效。 它也可能不是最有效的做事方式。

按display_name排序,如果要按其他属性排序,请将display_name更改为行中的属性

$sorted[$item->display_name][] = $item;

请注意,两个对象("模拟"用户对象和WP_User对象(必须具有相同的属性才能正常工作,还要注意WP_User对象如何使用魔术方法__get((。

function coauthor_sort( $authors ) {
    $sorted = array();
    foreach ($authors as $item) {
        $sorted[$item->display_name][] = $item;
    }
    uksort($sorted, "strnatcasecmp");
    $sorted_authors = array();
    foreach ($sorted as $subArray) {
        foreach ($subArray as $item)  {
            $sorted_authors[] = $item;
        }
    }
    return $sorted_authors;
}
add_filter('coauthors_wp_list_authors_array','coauthor_sort');