Функция выводит информацию об авторе текущего поста или о пользователе с указанным ID, либо значение любого его мета-поля.
Если вам нужно не вывести, а получить эту информацию и записать в переменную, то обратите внимание на get_the_author_meta(). А значения мета-полей вы также можете получить функцией get_user_meta().
the_author_meta( $field = '', $user_id = false )
Параметры
- $field
- (строка) В качестве информации о пользователе вы можете получить:
user_login(логин)user_pass(хэш пароля)user_nicenameuser_email(email)user_url(сайт, указанный в профиле)user_registered(дата регистрации)user_activation_key(ключ активации)user_statusdisplay_name(отображаемое имя пользователя)nickname(ник)first_name,user_firstname(имя)last_name,user_lastname(фамилия)description(значение поля «Биография» в профиле пользователя)rich_editing(значение чекбокса «Отключить визуальный редактор» в профиле пользователя)comment_shortcuts(значение чекбокса «Использовать горячие клавиши для проверки комментариев» в профиле пользователя)admin_color(цветовая схема в админке)plugins_per_page(количество плагинов, одновременно отображаемых на странице плагинов)plugins_last_viewID(ID пользователя)- либо любое из значений meta_key в таблице wp_usermeta
- $user_id
- (целое число) ID пользователя, по умолчанию — автор текущего поста в цикле.
Примеры
Наверное самый главный пример будет об отличии функции от get_the_author_meta(), потому что частенько замечал на чужих проектах, что значение the_author_meta() пытаются впихнуть в переменную. Камон, даже в официальной документации WordPress кто-то запостил такой пример.
Итак, получаем и выводим имя first_name пользователя с ID=25:
// три строчки кода в этом примере делают абсолютно одно и то же echo get_the_author_meta( 'first_name', 25 ); $first_name = get_the_author_meta( 'first_name', 25 ); echo $first_name; the_author_meta( 'first_name', 25 );
Ну или например используем функцию внутри цикла:
while( have_posts() ) : the_post(); the_title( '<h2>', '</h2>' ); echo 'Автор: '; the_author_meta( 'first_name' ); endwhile;
Хуки
Этот фильтр-хук позволяет изменить выводимое значение для определённого поля $field.
Предположим, что есть какой-то определённый email, который никогда не нужно отображать на сайте. Мы можем скрыть его этим хуком глобально на сайте.
add_filter( 'the_author_user_email', 'true_hide_specific_email', 25, 2 ); function true_hide_specific_email( $author_meta, $user_id ) { // ничего не делаем для администраторов if( current_user_can( 'administrator' ) ) { return $author_meta; } if( 'no-reply@misha.agency' == $author_meta ) { $author_meta = 'Email скрыт.'; } return $author_meta; }
Источник: Блог Миши Рудрастых