2011-03-31 83 views
2

如何随机获取作者详细信息和作者网页固定链接。我已经检查了wordpress的新get_users()函数,这是返回作者,但我不能随机排序它们。随机获取作者

这里是网站我使用的代码:http://citystir.com

任何帮助吗?


解决方法:感谢theomega我已经解决了isse。以下是仅用于社区共享的代码:

$args = array('role' => 'author'); 

    $authors = get_users($args); 
    shuffle($authors); 
    $i = 0; 
    foreach ($authors as $author): 
      if($i == 4) break; 
      //do stuff 
      $i++; 
     endforeach; 

未设置$ args的限制,因为我需要所有用户中的洗牌。希望它能帮助那些在野外的人。 :D谢谢!

回答

7

尝试

$users = get_users('ciriteria'); 
shuffle($users) 
//users is now shuffled 

使用PHP Shuffle-Function

+1

NOP其返回false或空字符串。它可能不适用于查询结果。 – Sisir 2011-03-31 16:00:51

+0

你是对的,我编辑了我的anser,shuffle是在php中。 – theomega 2011-03-31 16:02:28

+0

我猜你的代码和以前一样... – Sisir 2011-03-31 16:13:00

0

我们可以使用get_users()得到作者的列表,用户具有特定角色,与特定的用户荟萃等函数会返回一个可以通过ID进行排序的用户,登录,nicename,电子邮件, url,registered,display_name,post_count或meta_value。但没有任何随机选项,例如get_posts()函数提供了随机显示帖子。

由于get_users()函数使用WP_User_Query类,因此我们可以使用一个操作钩pre_user_query来修改类变量。这个想法是通过参数使用我们自己的'rand'命令。如果我们将“rand”添加到orderby参数中,则将使用“user_login”。在这种情况下,我们需要用RAND()替换它以随机生成用户。在下面的这个例子中,我们可以使用你自己的名字命令。

add_action('pre_user_query', 'my_random_user_query'); 

function my_random_user_query($class) { 
    if('rand' == $class->query_vars['orderby']) 
     $class->query_orderby = str_replace('user_login', 'RAND()', $class->query_orderby); 

    return $class; 
} 

WP_User_Query通过查询和我们的论点包含了订单。现在,我们通过参数向WordPress订购了一个新订单。

$users = get_users(array(
    'orderby' => 'rand', 
    'number' => 5 
)); 
print_r($users); 

参考:http://www.codecheese.com/2014/05/order-wordpress-users-random/