Как удалить или изменить автора старой записи в WordPress без плагинов

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

Почему стоит изменить или удалить автора записи вручную через код

Многие пользователи, особенно новички, ищут плагин для решения этой задачи. Однако использование плагинов не всегда оправдано: они могут замедлять сайт, создавать конфликты или иметь избыточный функционал. Гораздо эффективнее и надёжнее реализовать нужное через код, особенно если таких записей немного или вы хотите автоматизировать процесс.

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

Изменение автора записи через wp-admin: стандартный способ

Для одиночных записей самый простой способ — изменить автора через административную панель WordPress:

  • Откройте запись в режиме редактирования.
  • В правой боковой панели найдите метабокс «Автор».
  • Выберите нового автора из списка пользователей.
  • Сохраните изменения.

Однако этот метод неудобен при массовом редактировании, а также если автор не отображается в метабоксе (например, если у пользователя нет прав).

Изменение или удаление автора старых записей через код — пример функции

Рассмотрим, как написать функцию для массового изменения автора. Предположим, вы хотите заменить автора с ID 5 на автора с ID 1, либо полностью удалить автора (обнулив поле post_author).

function wplessons_change_post_author($old_author_id, $new_author_id = 0) {
    global $wpdb;
    // Если $new_author_id = 0, автор будет удалён
    $table = $wpdb->posts;
    $result = $wpdb->update(
        $table,
        array('post_author' => $new_author_id),
        array('post_author' => $old_author_id),
        array('%d'),
        array('%d')
    );
    return $result; // количество обновленных записей
}

Пример использования:

// Заменить автора с ID 5 на автора с ID 1
$updated = wplessons_change_post_author(5, 1);
echo "Обновлено записей: " . $updated;

// Удалить автора с ID 3 (установить в 0)
$deleted = wplessons_change_post_author(3, 0);
echo "Обновлено записей: " . $deleted;

Функцию удобно запускать один раз, например, через файл functions.php вашей темы или с помощью плагина для выполнения кода, например, WPRemark.

Удаление отображения автора на фронтенде WordPress

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

Отключение автора через изменение темы

В файлах темы (обычно single.php, content.php или архивных шаблонах) найдите вывод автора, например:

<?php the_author_posts_link(); ?>

Удалите или закомментируйте эти строки, чтобы автор не отображался.

Фильтрация автора через хуки

Можно программно заменить имя автора на пустую строку:

function wplessons_hide_author_name($display_name, $user_id) {
    return '';
}
add_filter('the_author', 'wplessons_hide_author_name', 10, 2);

Этот код уберёт имя автора при выводе через функцию the_author(). Аналогично можно применить для других хуков, если тема использует другие методы вывода.

Как сохранить целостность данных и избежать ошибок после удаления автора

В WordPress поле post_author в таблице wp_posts обязательно содержит ID пользователя. Если установить значение в 0, записи станут безавторными, что может вызвать проблемы с некоторыми плагинами или темами.

Поэтому рекомендуется при удалении автора заменить его на системного пользователя, например, администратора с ID 1 или специального «безавторного» пользователя, созданного для таких случаев.

Для создания безавторного пользователя можно сделать так:

function wplessons_create_anonymous_user() {
    $user = get_user_by('login', 'anonymous');
    if (!$user) {
        $user_id = wp_create_user('anonymous', wp_generate_password(), 'anonymous@example.com');
        $user = get_user_by('id', $user_id);
        $user->set_role('subscriber');
    }
    return $user->ID;
}

Далее используйте его ID для замены автора.

Примеры плагинов для управления авторами и мультиавторства

Если хотите расширить возможности управления авторами, рассмотрите плагины, которые помогают делать это без ручного кода:

  • Expert Review — плагин для расширенного управления контентом, включая возможности изменения авторов.
  • WPRemark — позволяет выполнять произвольные SQL-запросы и PHP-код для массовых правок.

Но если задача одноразовая и простая — лучше использовать код, описанный выше.

Заключение

Изменение или удаление автора в старых записях WordPress — задача, которую можно эффективно решить без сторонних плагинов, используя простой код. Это помогает сохранить производительность сайта и избежать лишних зависимостей. Главное — всегда делайте резервные копии базы данных перед массовыми изменениями.

Как изменить URL авторских связей в WordPress без плагинов
11.12.2025
Как отключить автовыделение и автозагрузку изображений в WordPress
02.02.2026
Как создать уникальный фильтр по пользовательским мета-полям в WordPress
18.02.2026
Как создать автоматическую публикацию постов в WordPress с помощью Cron
18.03.2026
Как использовать фильтры WP_Query для комплексного поиска в WordPress
22.03.2026