wpload.ru wordpress WPLoad.ru

Как изменить вывод автора в WordPress: практическое руководство

В 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. Для полного контроля лучше писать собственные функции и править шаблоны темы.

Не забывайте про безопасность и удобство пользователей сайта. Правильный вывод информации об авторе улучшит доверие и повысит вовлеченность аудитории.

×

Пора действовать!

Скидки на
WordPress!

-20%
на премиум темы

Успей купить ⋙