В WordPress по умолчанию вывод информации об авторе статьи ограничен стандартным набором данных — имя, ссылка на архив автора и иногда описание. Однако часто возникает задача кастомизировать вывод автора, добавить дополнительные поля, изменить структуру или стилизацию, а также управлять выводом автора на разных типах страниц. В этой статье мы подробно разберём, как изменить вывод автора в WordPress с помощью кода и плагинов, а также приведём конкретные примеры, которые помогут быстро внедрить нужные изменения.
Почему важно кастомизировать вывод автора в WordPress
Вывод информации об авторе — это не просто дань дизайну сайта. Это может влиять на доверие посетителей, улучшать SEO, создавать более персонализированный опыт. Например, вы можете захотеть вывести:
- аватар и социальные сети автора;
- полное описание, био и ссылки на другие материалы;
- произвольные поля, например, должность, опыт;
- специфический дизайн блока автора, соответствующий стилю сайта.
Стандартный шаблон the_author() не позволяет реализовать все эти задачи, поэтому приходится использовать дополнительные решения.
Изменение вывода автора через functions.php: добавляем кастомные поля
Самый гибкий способ — расширить данные автора через добавление пользовательских полей и вывести их в шаблоне. Для начала добавим в профиль пользователя произвольные поля, например, должность и Twitter.
Добавление пользовательских полей к профилю пользователя
В файл functions.php вашей темы или в отдельный плагин добавим следующий код:
function wpskills_add_custom_user_profile_fields( $user ) {
?>
<h3>Дополнительная информация автора</h3>
<table class="form-table">
<tr>
<th><label for="wpskills_position">Должность</label></th>
<td>
<input type="text" name="wpskills_position" id="wpskills_position" value="<?php echo esc_attr( get_the_author_meta( 'wpskills_position', $user->ID ) ); ?>" class="regular-text" />
</td>
</tr>
<tr>
<th><label for="wpskills_twitter">Twitter</label></th>
<td>
<input type="text" name="wpskills_twitter" id="wpskills_twitter" value="<?php echo esc_attr( get_the_author_meta( 'wpskills_twitter', $user->ID ) ); ?>" class="regular-text" />
</td>
</tr>
</table>
<?php
}
add_action( 'show_user_profile', 'wpskills_add_custom_user_profile_fields' );
add_action( 'edit_user_profile', 'wpskills_add_custom_user_profile_fields' );
function wpskills_save_custom_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) ) {
return false;
}
update_user_meta( $user_id, 'wpskills_position', sanitize_text_field( $_POST['wpskills_position'] ) );
update_user_meta( $user_id, 'wpskills_twitter', sanitize_text_field( $_POST['wpskills_twitter'] ) );
}
add_action( 'personal_options_update', 'wpskills_save_custom_user_profile_fields' );
add_action( 'edit_user_profile_update', 'wpskills_save_custom_user_profile_fields' );
Этот код добавит два новых поля в профиль пользователя, которые можно будет заполнить в админке.
Выводим новые поля в шаблоне автора
Теперь нужно вывести эти данные в нужном месте темы, например, в single.php или в шаблоне авторской страницы author.php:
<div class="author-info">
<h4><?php the_author(); ?></h4>
<p><strong>Должность:</strong> <?php echo esc_html( get_the_author_meta( 'wpskills_position' ) ); ?></p>
<p><strong>Twitter:</strong> <a href="https://twitter.com/<?php echo esc_attr( get_the_author_meta( 'wpskills_twitter' ) ); ?>" target="_blank" rel="noopener">@<?php echo esc_html( get_the_author_meta( 'wpskills_twitter' ) ); ?></a></p>
</div>
Так вы получите более информативный блок автора, который можно стилизовать по своему вкусу.
Использование плагина Clearfy Pro для расширенного вывода автора
Если вы не хотите писать код, можно воспользоваться плагином Clearfy Pro. Этот плагин позволяет легко управлять выводом метаданных автора, отключать лишние поля, а также добавлять кастомные элементы через админку без программирования.
Пример настройки: в панели Clearfy включите опцию расширенного профиля автора, добавьте необходимые поля и настройте отображение через визуальный редактор. Плагин автоматически добавит эти данные в шаблоны вашего сайта.
Как изменить вывод автора на страницах архива и блога
Вывод автора на страницах архива, категории или блога часто контролируется шаблоном content.php или подобным. Чтобы изменить информацию об авторе там, нужно найти вызов функции the_author_posts_link() или get_the_author() и заменить на кастомный вывод.
Пример замены вывода автора с добавлением аватара и должности
function wpskills_custom_author_output() {
$author_id = get_the_author_meta('ID');
$position = get_the_author_meta('wpskills_position', $author_id);
$avatar = get_avatar( $author_id, 48 );
$author_name = get_the_author();
echo '<div class="wpskills-author-info">';
echo $avatar;
echo '<span class="author-name">' . esc_html( $author_name ) . '</span>';
if ( $position ) {
echo '<span class="author-position"> — ' . esc_html( $position ) . '</span>';
}
echo '</div>';
}
В шаблоне замените стандартный вывод автора на:
<?php wpskills_custom_author_output(); ?>
Такой подход поможет сделать вывод автора на всех страницах более информативным и единообразным.
Кратко о безопасности и производительности при кастомизации автора
При работе с пользовательскими данными важно всегда фильтровать и экранировать вывод, чтобы избежать XSS-уязвимостей. Используйте функции esc_html(), esc_attr() и sanitize_text_field() как в приведённых примерах.
Также не стоит перегружать вывод сложными запросами, лучше кешировать данные, если блок автора используется часто. Для этого можно использовать Transients API или встроенные возможности плагинов кеширования.