Como utilizar get_users() no WordPress (PHP)3 min leitura

Explicação de como utilizar a função PHP get_users() do WordPress e um exemplo prático de código para obter uma lista de todos os usuários que já publicaram um post.

Com a função PHP get_users() você obtém uma lista de usuários do WordPress, podendo ser filtrados de acordo com os parâmetros passados. Segue abaixo alguns exemplos de uso:

<?php // Todos os usuários $usuarios = get_users( ); // Todos os usuários, exibindo só os campos de ID e usuário $usuarios = get_users( array( 'fields' => array( 'ID', 'user_login' ) ) ); // Todos os usuários com função de administrador e editor, // exibindo só os campos de ID e usuário $usuarios = get_users( array( 'role__in' => array( 'administrator', 'editor' ), 'fields' => array( 'ID', 'user_login' ) ) ); // Todos os usuários com que contenha 'kossmann' no nome de usuário, ID ou email, // exibindo só os campos de ID e usuário $usuarios = get_users( array( 'search' => 'kossmann', 'fields' => array( 'ID', 'user_login' ) ) );
Code language: PHP (php)

Veja um exemplo de valor retornado para um usuário:

Array( [0] => WP_User Object ( [data] => stdClass Object ( [ID] => 1 [user_login] => danielkossmann [user_pass] => $P$BJhJlsfEUZ6b6NTWr6ztqucMPV.bPa/ [user_nicename] => danielkossmann [user_email] => [email protected] [user_url] => https://www.danielkossmann.com [user_registered] => 2021-07-29 12:12:22 [user_activation_key] => [user_status] => 0 [display_name] => danielkossmann ) [ID] => 1 [caps] => Array ( [administrator] => 1 ) [cap_key] => wp_capabilities [roles] => Array ( [0] => administrator ) [allcaps] => Array ( [switch_themes] => 1 [edit_themes] => 1 [activate_plugins] => 1 [edit_plugins] => 1 [edit_users] => 1 [edit_files] => 1 [manage_options] => 1 [moderate_comments] => 1 [manage_categories] => 1 [manage_links] => 1 [upload_files] => 1 [import] => 1 [unfiltered_html] => 1 [edit_posts] => 1 [edit_others_posts] => 1 [edit_published_posts] => 1 [publish_posts] => 1 [edit_pages] => 1 [read] => 1 [level_10] => 1 [level_9] => 1 [level_8] => 1 [level_7] => 1 [level_6] => 1 [level_5] => 1 [level_4] => 1 [level_3] => 1 [level_2] => 1 [level_1] => 1 [level_0] => 1 [edit_others_pages] => 1 [edit_published_pages] => 1 [publish_pages] => 1 [delete_pages] => 1 [delete_others_pages] => 1 [delete_published_pages] => 1 [delete_posts] => 1 [delete_others_posts] => 1 [delete_published_posts] => 1 [delete_private_posts] => 1 [edit_private_posts] => 1 [read_private_posts] => 1 [delete_private_pages] => 1 [edit_private_pages] => 1 [read_private_pages] => 1 [delete_users] => 1 [create_users] => 1 [unfiltered_upload] => 1 [edit_dashboard] => 1 [update_plugins] => 1 [delete_plugins] => 1 [install_plugins] => 1 [update_themes] => 1 [install_themes] => 1 [update_core] => 1 [list_users] => 1 [remove_users] => 1 [promote_users] => 1 [edit_theme_options] => 1 [delete_themes] => 1 [export] => 1 [ppma_manage_authors] => 1 [ppma_edit_post_authors] => 1 [administrator] => 1 ) [filter] => [site_id:WP_User:private] => 1 ) )
Code language: PHP (php)

Note que o usuário retorna uma lista de todas as permissões do WordPress que ele possui. Se você quiser se aprofundar nesse assunto, escrevi um guia prático das funções e permissões de usuários do WordPress.

Obtendo uma lista de todos os usuários que já publicaram um post no WordPress

Um possível uso da função get_users() é obter todos os usuários que já publicaram algo em um site. Veja um exemplo:

<?php $usuarios = get_users( array( // Já publicaram um post 'has_published_posts' => true, // Ordenados ascendentemente pelo nome de usuário 'order' => 'ASC', 'orderby' => 'user_login', // Retorna somente ID, login e email 'fields' => array( 'ID', 'user_login', 'user_email' ) ) );
Code language: PHP (php)

Se você quiser, é possível passar dentro do parâmetro has_published_posts um array com os nomes dos tipos de posts, incluindo Custom Post Types, como: array( 'post', 'portfolio' ).

Na última dica de programação, fiz um exemplo de código para gerar uma nova senha aleatória para todos os usuários do WordPress utilizando a função PHP wp_set_password().

Similar Posts

Você tem algo construtivo sobre este texto para dizer? Então comente abaixo