Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the hustle domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114
Como utilizar get_users() no WordPress (PHP) - Daniel Kossmann

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



Comments

Deixe um comentário

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