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] => dev-email@danielkossmann.com
[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().
Deixe um comentário