获取查询中的用户,并以随机顺序将用户输出限制为五个

时间:2016-06-29 作者:public9nf

footer.php 我用以下代码显示我博客的所有作者:

$args = array(
    \'meta_key\' => \'last_name\',
    \'orderby\' => \'meta_value\',
    \'order\' => \'ASC\'
);

// Create the WP_User_Query object
$wp_user_query = new WP_User_Query( $args );
$wp_user_query->query_orderby = str_replace( \'user_login\', 
    \'wp_usermeta.meta_value\', $wp_user_query->query_orderby );

// Get the results
$authors = $wp_user_query->get_results();
是否可以将输出限制为5个随机用户?喜欢posts_per_page => 3orderby => rand?

2 个回复
SO网友:Ismail

可以,只要告诉WordPress使用RAND() 传递时的SQL排序rand 在里面orderby 参数:

add_action( "pre_user_query", function( $query ) {
    if( "rand" == $query->query_vars["orderby"] ) {
        $query->query_orderby = str_replace( "user_login", "RAND()", $query->query_orderby );
    }
});
现在您可以使用:

$users = get_users( array(
    \'meta_key\' => \'last_name\',
    \'orderby\' => \'rand\',
    \'number\'  => 3 // limit
));

print_r( $users );
希望这有帮助。

SO网友:Nicholas Koskowski
function get_random_authors($number) {

$users = wp_list_authors( array(
\'orderby\' => \'rand\',
\'number\'  => $number // limit
));

return $users;

}

print_r(get_random_authors(3));

相关推荐