Изменение имени автора в WordPress без плагинов

В WordPress по умолчанию имя автора отображается согласно настройкам профиля пользователя. Но иногда возникает задача изменить отображаемое имя автора для конкретных записей или глобально, без установки дополнительных плагинов. В этой статье расскажем, как это сделать с помощью кода, используя хуки и фильтры WordPress.

Почему стоит изменить имя автора без плагина

Плагины для изменения имени автора, например, Edit Author Slug или Author Avatars List, удобны, но могут дополнительно нагружать сайт и создавать потенциальные конфликты. Локальная реализация через код — более легкий и контролируемый способ, позволяющий избежать сторонних зависимостей и ускорить работу сайта.

Кроме того, такой подход отлично подходит для уникальных случаев, например, когда необходимо динамически менять имя автора в зависимости от условий или контекста.

Как WordPress формирует отображаемое имя автора

Для отображения имени автора WordPress обычно использует функцию get_the_author() и связанные с ней функции. Эти функции берут имя из профиля пользователя, где поля: Никнейм, Имя, Фамилия и Отображаемое имя.

Обратите внимание, что в шаблонах темы часто используется the_author(), что выводит имя автора текущего поста.

Фильтр для изменения имени автора

С помощью фильтра the_author можно изменить имя автора на лету. Создадим функцию с префиксом wpdemo_, как принято для уникальности, которая будет возвращать нужное имя.

function wpdemo_change_author_name($display_name) {
    global $post;
    if ($post) {
        // Пример: изменить имя автора для записи с ID 123
        if ($post->ID == 123) {
            return 'Анонимный Автор';
        }
    }
    return $display_name;
}
add_filter('the_author', 'wpdemo_change_author_name');

Этот код заменит имя автора на «Анонимный Автор» только для записи с ID 123. Для остальных записей имя останется прежним.

Изменение имени автора для всех записей определённого пользователя

Иногда необходимо изменить отображаемое имя для всех записей конкретного пользователя. Для этого расширим функцию, проверяя ID автора поста.

function wpdemo_change_author_name_by_user($display_name) {
    global $post;
    if ($post) {
        $author_id = $post->post_author;
        // Заменяем имя для пользователя с ID 5
        if ($author_id == 5) {
            return 'Редактированное Имя';
        }
    }
    return $display_name;
}
add_filter('the_author', 'wpdemo_change_author_name_by_user');

Таким образом, все записи пользователя с ID 5 будут показывать другое имя автора.

Изменение имени автора в административной панели

Фильтр the_author работает на фронтенде, но в админке имена могут отображаться иначе. Для изменения имени автора в админке можно использовать фильтр get_user_display_name.

function wpdemo_admin_change_author_name($display_name, $user_id) {
    // Проверяем ID пользователя
    if ($user_id == 5) {
        return 'Админ Имя';
    }
    return $display_name;
}
add_filter('get_user_display_name', 'wpdemo_admin_change_author_name', 10, 2);

Этот код изменит отображаемое имя пользователя с ID 5 и в админке, и на фронтенде в тех местах, где используется get_user_display_name().

Пример динамического изменения имени автора в зависимости от даты публикации

Иногда полезно изменить имя автора в зависимости от даты публикации поста. Например, для старых записей показывать «Архивный автор».

function wpdemo_author_name_by_date($display_name) {
    global $post;
    if ($post) {
        $post_date = strtotime($post->post_date);
        $cutoff_date = strtotime('-1 year'); // более года назад
        if ($post_date < $cutoff_date) {
            return 'Архивный автор';
        }
    }
    return $display_name;
}
add_filter('the_author', 'wpdemo_author_name_by_date');

Такой приём помогает визуально отделить старый контент на сайте.

Использование кастомного метаполя для имени автора

Если требуется, чтобы редакторы могли задавать отдельное имя автора для каждой записи, можно использовать кастомное поле. Для вывода этого имени создадим фильтр:

function wpdemo_author_name_custom_field($display_name) {
    global $post;
    if ($post) {
        $custom_author = get_post_meta($post->ID, 'wpdemo_custom_author_name', true);
        if (!empty($custom_author)) {
            return esc_html($custom_author);
        }
    }
    return $display_name;
}
add_filter('the_author', 'wpdemo_author_name_custom_field');

Теперь достаточно добавить метаполе wpdemo_custom_author_name к записи с нужным значением, и оно отобразится вместо стандартного имени автора.

Советы по безопасности и оптимизации

При работе с выводом имен автора важно использовать функции экранирования, такие как esc_html(), чтобы избежать XSS-уязвимостей.

Также рекомендуется кешировать результаты, если используется сложная логика, чтобы не увеличивать нагрузку на сервер.

Для удобства редакторов можно добавить поле для ввода кастомного имени автора в интерфейс редактирования записи через метабоксы. Это значительно расширит функционал без плагинов.

Заключение

В статье рассмотрены способы изменения отображаемого имени автора в WordPress без использования плагинов: через фильтры the_author и get_user_display_name, с примерами кода для различных сценариев — от замены имени для конкретных записей и пользователей до использования кастомных полей.

Если вы хотите расширить функциональность сайта, например, добавить массовое управление авторами или настройку через интерфейс, обратите внимание на плагины из WPShop, которые могут помочь автоматизировать эти задачи.

Как создать настройки для своего плагина WordPress с примерами кода
24.11.2025
Как создать динамичный виджет в WordPress с применением AJAX
28.01.2026
Как установить ограничение на количество постов в выводах WordPress
04.02.2026
WooCommerce: как изменить и добавить свойства товара в личном кабинете покупателя
20.04.2026
Как установить ограничение на число активных плагинов в WordPress
31.03.2026