Функция выводит информацию об авторе текущего поста или о пользователе с указанным ID, либо значение любого его мета-поля.
Если вам нужно не вывести, а получить эту информацию и записать в переменную, то обратите внимание на get_the_author_meta(). А значения мета-полей вы также можете получить функцией get_user_meta().
the_author_meta( $field = '', $user_id = false )
Параметры
- $field
- (строка) В качестве информации о пользователе вы можете получить:
user_login
(логин)user_pass
(хэш пароля)user_nicename
user_email
(email)user_url
(сайт, указанный в профиле)user_registered
(дата регистрации)user_activation_key
(ключ активации)user_status
display_name
(отображаемое имя пользователя)nickname
(ник)first_name
,user_firstname
(имя)last_name
,user_lastname
(фамилия)description
(значение поля «Биография» в профиле пользователя)rich_editing
(значение чекбокса «Отключить визуальный редактор» в профиле пользователя)comment_shortcuts
(значение чекбокса «Использовать горячие клавиши для проверки комментариев» в профиле пользователя)admin_color
(цветовая схема в админке)plugins_per_page
(количество плагинов, одновременно отображаемых на странице плагинов)plugins_last_view
ID
(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;
Хуки
the_author_{$field}
Этот фильтр-хук позволяет изменить выводимое значение для определённого поля $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; }