如何随机获取作者详细信息和作者页面永久链接。我已经检查了 WordPress 的新 get_users() 函数,该函数返回作者,但我无法对它们进行随机排序。
这是我正在使用代码的网站:http://citystir.com
有什么帮助吗?
解决方案:感谢theomega,我已经解决了这个问题。这是仅供社区分享的代码:
$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 谢谢!
我们可以使用
get_users()
来获取作者列表、具有特定角色的用户、具有特定元的用户等。该函数返回可以按 ID、登录名、nicename、电子邮件、url、注册、显示名称排序的用户、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 );