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] => 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().

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *