Получать пользователей в запросе и ограничивать вывод пользователя до пяти в случайном порядке

В 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 => 3 и orderby => rand ?

Solutions Collecting From Web of "Получать пользователей в запросе и ограничивать вывод пользователя до пяти в случайном порядке"

Да, просто скажите WordPress использовать сортировку SQL RAND() при передаче 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 ); 

Надеюсь, это поможет.

 function get_random_authors($number) { $users = wp_list_authors( array( 'orderby' => 'rand', 'number' => $number // limit )); return $users; } print_r(get_random_authors(3));