web-dev-qa-db-ja.com

ユーザをクエリに参加させ、ユーザの出力をランダムな順序で5つに制限します

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のように?

1
Peesen87

可能です、 Rand パラメータでorderbyを渡すときにRand() SQLソートを使用するようにWordPressに指示してください。

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 );

それが役立つことを願っています。

2
Samuel Elh
function get_random_authors($number) {

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

return $users;

}

print_r(get_random_authors(3));
0