В WordPress стандартное отображение автора поста часто не удовлетворяет требованиям дизайна или функционала сайта. Иногда необходимо изменить формат вывода имени автора, добавить дополнительные данные или вовсе заменить стандартный вывод кастомным. В этой статье разберем, как изменить вывод автора поста на сайте WordPress с помощью кода и плагинов, чтобы получить гибкий и удобный результат.
Почему стоит кастомизировать вывод автора в WordPress
По умолчанию WordPress отображает имя автора, привязанное к записи, используя функцию the_author() или шаблонную переменную get_the_author(). Однако такие выводы часто ограничены и не позволяют легко добавлять дополнительные данные, например, аватар, ссылку на профиль, описание или социальные сети.
Кроме того, на некоторых сайтах нужно выводить автора в нестандартном формате, например, с иконкой, в виде ссылки на страницу автора с UTM-метками для аналитики или с дополнительными пользовательскими полями.
Поэтому понимание того, как можно изменить вывод автора, полезно для разработчиков и владельцев сайтов на WordPress.
Изменение вывода автора с помощью хуков WordPress
WordPress предоставляет несколько хуков, которые позволяют модифицировать вывод автора без правки файлов темы напрямую. Один из них — фильтр the_author, который позволяет изменить имя автора перед выводом.
Рассмотрим пример функции wpload_change_author_name, которая добавляет к имени автора префикс и ссылку с UTM-метками:
function wpload_change_author_name($author) {
$author_id = get_the_author_meta('ID');
$author_url = get_author_posts_url($author_id);
$author_name = get_the_author_meta('display_name');
$utm_url = add_query_arg(
array(
'utm_source' => 'wpload.ru',
'utm_medium' => 'article',
'utm_campaign' => 'izmenit-vyvod-avtora'
),
$author_url
);
return '<a href="' . esc_url($utm_url) . '">Автор: ' . esc_html($author_name) . '</a>';
}
add_filter('the_author', 'wpload_change_author_name');Этот код добавляет к имени автора ссылку с UTM-метками, что удобно для аналитики переходов. Вывод изменится во всех местах, где используется the_author().
Как добавить аватар автора рядом с именем
Для более информативного вывода полезно добавить аватар автора. Для этого используем функцию get_avatar(). Модифицируем предыдущий код:
function wpload_author_with_avatar($author) {
$author_id = get_the_author_meta('ID');
$author_url = get_author_posts_url($author_id);
$author_name = get_the_author_meta('display_name');
$avatar = get_avatar($author_id, 32); // размер 32px
$utm_url = add_query_arg(
array(
'utm_source' => 'wpload.ru',
'utm_medium' => 'article',
'utm_campaign' => 'izmenit-vyvod-avtora'
),
$author_url
);
return $avatar . ' <a href="' . esc_url($utm_url) . '">' . esc_html($author_name) . '</a>';
}
add_filter('the_author', 'wpload_author_with_avatar');Теперь вывод автора будет содержать иконку с фото и ссылку на архив автора с UTM-метками.
Использование плагинов для кастомизации автора
Если хочется получить расширенный функционал без написания кода, можно использовать плагины. Рассмотрим два популярных варианта.
1. WP User Avatar / ProfilePress
Этот плагин позволяет загружать кастомные аватары пользователей прямо из панели админки, а также выводить их в любом месте сайта с помощью шорткодов или виджетов. Можно заменить стандартный вывод автора на более красивые и информативные блоки с фото, описанием и соцсетями.
Ссылка на плагин: WP User Avatar
2. Simple Author Box
Плагин добавляет под постами блок с информацией об авторе: имя, аватар, описание, ссылки на соцсети. Позволяет легко стилизовать вывод, задавать цвета и шрифты через настройки.
Ссылка на плагин: Simple Author Box
Кастомизация шаблонов темы для вывода автора
Если нужно более глубокое изменение вывода, придется редактировать шаблоны темы. Обычно информация об авторе выводится в файлах single.php, content.php или в отдельных partial-шаблонах.
Для вывода данных автора можно использовать функцию wpload_get_custom_author_block():
function wpload_get_custom_author_block() {
$author_id = get_the_author_meta('ID');
$avatar = get_avatar($author_id, 64);
$name = get_the_author_meta('display_name');
$description = get_the_author_meta('description');
$author_url = get_author_posts_url($author_id);
$utm_url = add_query_arg(
array(
'utm_source' => 'wpload.ru',
'utm_medium' => 'article',
'utm_campaign' => 'izmenit-vyvod-avtora'
),
$author_url
);
ob_start();
?>
<div class="wpload-author-block" style="border:1px solid #ddd; padding:15px; margin:20px 0; display:flex; align-items:center;">
<div class="wpload-author-avatar" style="margin-right:15px;"><?php echo $avatar; ?></div>
<div class="wpload-author-info">
<a href="<?php echo esc_url($utm_url); ?>" style="font-weight:bold; font-size:1.2em;"><?php echo esc_html($name); ?></a>
<p style="margin-top:5px; color:#666;"><?php echo esc_html($description); ?></p>
</div>
</div>
<?php
return ob_get_clean();
}В шаблонах темы можно вывести блок автора, вставив echo wpload_get_custom_author_block(); в нужное место.
Вывод автора с дополнительными пользовательскими полями
Часто нужно выводить дополнительные данные, например, ссылки на соцсети, должность или контакты автора. Для этого следует добавлять пользовательские поля к профилю пользователя через хук show_user_profile и выводить их в шаблоне.
Пример добавления поля "Должность" к профилю автора:
function wpload_add_author_position_field($user) {
?>
<h3>Дополнительные данные автора</h3>
<table class="form-table">
<tr>
<th><label for="author_position">Должность</label></th>
<td>
<input type="text" name="author_position" id="author_position" value="<?php echo esc_attr(get_the_author_meta('author_position', $user->ID)); ?>" class="regular-text" />
<br /><span class="description">Введите должность автора</span>
</td>
</tr>
</table>
<?php
}
add_action('show_user_profile', 'wpload_add_author_position_field');
add_action('edit_user_profile', 'wpload_add_author_position_field');
function wpload_save_author_position_field($user_id) {
if (!current_user_can('edit_user', $user_id)) {
return false;
}
update_user_meta($user_id, 'author_position', sanitize_text_field($_POST['author_position']));
}
add_action('personal_options_update', 'wpload_save_author_position_field');
add_action('edit_user_profile_update', 'wpload_save_author_position_field');После этого в выводе автора можно получить и отобразить должность:
$position = get_the_author_meta('author_position');
echo '<p>Должность: ' . esc_html($position) . '</p>';Советы по оптимизации и безопасности вывода автора
При изменении вывода автора важно соблюдать меры безопасности:
- Используйте функции
esc_html(),esc_url()и другие для экранирования вывода. - Не выводите необработанные данные пользователя напрямую.
- Кешируйте результаты, если вывод сложный, чтобы снизить нагрузку на сервер.
- Проверяйте, что пользователь существует и активен перед выводом.
Также при использовании плагинов следите за их обновлениями и совместимостью с вашей версией WordPress.
Итоговые рекомендации
Изменение вывода автора в WordPress — задача, которую можно решить разными способами: от простого фильтра the_author до создания собственного блока с аватаром, описанием и дополнительными данными. Для быстрого результата подойдут плагины WP User Avatar и Simple Author Box. Для полного контроля лучше писать собственные функции и править шаблоны темы.
Не забывайте про безопасность и удобство пользователей сайта. Правильный вывод информации об авторе улучшит доверие и повысит вовлеченность аудитории.