合著者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');