Для того, чтобы вывести данные пользователя users на экран (непременно прочтите этот пост, связка с этим) следует поступить следующим образом. В данном посте воспользуемся функциями get_userdata() и: get_user_by() — если требуется аватар get_avatar().
Где это может пригодиться? например, можно вывести сводку на фронт все данные авторов со ссылкой на редактирование (не его профиль) если имеется регистрация, но на странице редактирования профиля в админпанели сайта на WordPress.
Блок авторов:
Добавляем индивидуальную аватарку для конкретного пользователя, или дополнительный блок об Авторе …
если используем get_avatar — шаблон:
Это цепляем аватар пользователя (варианты: укажем конкретного пользователя для показа, или автоматикой, если блок из нескольких (указанных или всех) пользователей:
get_avatar( $id_or_email, $size, $default_value, $alt, $args );
пример:
echo get_avatar( $comment, 72 ); // аргументы: по конкретному мылу admin@example.com или $current_user->user_email или как-то по $comment, 72 размер картинки авы, 4 параметр $alt задаём описание …
…обратите на это внимание, потому как иногда, если проверять валидность по исходному коду, тестеры выдают о незаполненности поля alt, однако, в предложенном ниже коде, эта ошибка исключена!..
<img alt='' src='http://0.gravatar.com/avatar/ad516503a?s=72' class='avatar avatar-72 photo avatar-default' height='72' width='72' />
подробнее об аргументах функции здесь…
чтобы организовать несложный шорткод блока авторов
Это для того, чтобы выводить где-то в произвольном месте сайта (виджеты/файлы):
add_shortcode( 'autors', 'ats_blog_autors_str' ); // в файлах шаблона: do_shortcode( 'autors', ); = чистый шорт [autors] или прямо функцией, как удобнее...
function ats_blog_autors_str() {
// обработка
}
По вариантам вывода — add_action или функцию function_name() поразмышляем: шорткод или функция?..
или использовать foreach( $ as $ ):
foreach( $authors as $author ) {
// обработка
}
вот такой код можно попробовать для вывода данных в блоке вывода всех авторов сайта, только организуйте стили css.
Я дал различные варианты получения информации о users (пригодится):
if ( current_user_can( 'administrator', 'editor', 'author' )) { // лишнее можно убрать
$user_info = get_userdata( $author->ID );
?><div style="background:#fff;border-radius:2px;" class="posts-widget-meta">для авторов сайта:
<a title="' . $autorsblog . '" href="<?php get_bloginfo( 'url' ); ?>/wp-admin/user-edit.php?user_id=<?php echo $user_info->ID; ?>&wp_http_referer=%2Fwp-admin%2Fusers.php" target="_blank">Редактировать профиль</a><?php
echo 'Имя пользователя (Логин): ' . $user_info->user_login; //
$slug = get_the_author_meta( 'user_nicename', $author->ID ); // или по конкретному слагу
$user = get_user_by( 'slug', $slug );
if ( $user ) { // Получаем логин пользователя
$username = $user->user_login; echo '<br />Логин users: ' . $username . '';
} else { echo 'не найдено'; }
//
echo ' || Уровень доступа ' . $user_info->user_level . ''; echo ' ID: ' . $user_info->ID; // id автора в блоке
$username = $user_info->user_login; // или по конкретному логину: 'имя_us'
$user = get_user_by( 'login', $username );
if ( $user ) {
$email = $user->user_email; echo ' || Email users: ' . $email . ''; // Получаем email пользователя
} else { echo 'не найдено'; }
// выведем id по почте
$email = $email; // или по конкретному 'admin@example.com'
$user = get_user_by( 'email', $email );
if ( $user ) {
$user_id = $user->ID; echo ' || ID users: ' . $user_id . ''; // Получаем ID пользователя
} else { echo 'не найдено'; }
//
$email = $user->user_email;
$user = get_user_by( 'email', $email ); // Получение пользователя по email
if ( $user ) { // выводим имя и роль юзера
//echo ' || Имя пользователя: ' . $user->display_name;
echo ' || Роль users: ' . $user->roles[0] . '';
} else { echo 'не найдено'; } ?></div><?php }
Код отработает по условию: if ( current_user_can( 'administrator', 'editor', 'author' )) — только для админа, редакторов и авторов…
логика функции get_user_by() по одному из блоков:
Функция get_user_by() используется для получения информации о пользователе… либо указанным данным, либо выбранным автоматически. Принимает два обязательных параметра: 1) поле получения информации о пользователе, и — значение поля, которое ищем…
…по отработке возвращает объект WP_User — либо false в случае НЕуспеха
Пример шаблона использования:
get_user_by( string $field, int|string $value ): WP_User|false
пример с конкретным указанием 2-го параметра данных пользователя — логина:
$user = get_user_by( 'login', 'user1' );
В данном примере мы получаем информацию о пользователе, у которого значение поля ‘login’ равно ‘user1’ …
Макет блока: сохраняем в переменную $username = $user_info->user_login — автоматический вариант (скажем в цикле перебора):
$username = $user_info->user_login;
$user = get_user_by( 'login', $username );
if ( $user ) {
$email = $user->user_email; echo ' || Email users: ' . $email . '';
} else { echo 'не найдено'; }
Получаем информацию о пользователе по его логину, а значит 1: аргумент функции get_user_by() ‘login’ — вторым аргументом укажем мыло конкретного пользователя, либо передадим автоматически (как в примере)…
Если пользователь в Базе данных сайта найден, выводим его email, если нет — «не найдено».
Примерный результат настройки и отработки кода ниже на картинке:

get_userdata() как вывести данные пользователя (users) в определенном месте сайта на WordPress: условия и правила организации блока автора, ава get_avatar

Создание… продвижение сайтов; помощь по сайту, настройки, сопровождение и пр. — студия ATs media запросто с WordPress!
видео: конструктивное и целеSEOбразное создание и продвижение сайтов — ATs media (запросто с WordPress):
mihalica.ru !



