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

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

Почему важно программно управлять публикациями авторов

Удаление или изменение постов вручную через админ-панель — не всегда удобно и быстро. Особенно если у автора сотни публикаций. Программные методы позволяют:

  • Автоматизировать процесс удаления или переназначения постов
  • Избежать ошибок при массовых операциях
  • Вписать логику в кастомные скрипты для интеграции с другими процессами

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

Удаление всех публикаций автора через WP-CLI

WP-CLI — мощный инструмент для командной строки, который позволяет управлять сайтом без загрузки админки. Для удаления всех постов автора с ID 123 выполните:

wp post delete $(wp post list --author=123 --post_type=post --format=ids) --force

Здесь мы сначала получаем ID всех постов автора, а затем удаляем их. Ключ --force удаляет без помещения в корзину.

Этот способ очень быстрый и надежный, но требует доступа к серверу через SSH.

Функция удаления публикаций автора в PHP для использования в теме или плагине

Если нужно интегрировать логику удаления в код сайта, используем следующий пример:

function wptests_delete_author_posts($author_id) {
    $args = array(
        'author' => $author_id,
        'post_type' => 'post',
        'post_status' => 'any',
        'numberposts' => -1
    );
    $posts = get_posts($args);
    foreach ($posts as $post) {
        wp_delete_post($post->ID, true); // true - удалить без корзины
    }
}

// Пример вызова
wptests_delete_author_posts(123);

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

Изменение автора публикаций программно

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

function wptests_change_author_posts($old_author_id, $new_author_id) {
    $args = array(
        'author' => $old_author_id,
        'post_type' => 'post',
        'post_status' => 'any',
        'numberposts' => -1
    );
    $posts = get_posts($args);
    foreach ($posts as $post) {
        $post->post_author = $new_author_id;
        wp_update_post($post);
    }
}

// Использование
wptests_change_author_posts(123, 456);

Данная функция меняет автора у всех постов с одного пользователя на другого.

Обработка пользовательских типов записей и оптимизация

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

$args = array(
    'author' => $author_id,
    'post_type' => array('post', 'custom_type'),
    'post_status' => 'any',
    'numberposts' => -1
);

Для оптимизации на больших сайтах желательно использовать WP_Query с пагинацией или WP-CLI, чтобы избежать превышения лимитов памяти и времени выполнения.

Пример использования плагина Clearfy Pro для управления публикациями

Плагин Clearfy Pro позволяет настроить права пользователей и автоматизировать очистку от спам-публикаций, что косвенно помогает управлять авторскими материалами без кода. Особенно полезен для сайтов с большим количеством авторов.

Резюме и рекомендации

Программное управление публикациями авторов — важный инструмент для разработчиков и администраторов WordPress. Используйте WP-CLI для быстрого массового удаления, а PHP-функции — для интеграции логики в плагины и темы.

Не забывайте делать бэкапы перед массовыми операциями и тестировать скрипты на тестовом сайте. А если нужно расширенное управление и безопасность — обратите внимание на Clearfy Pro.

Как автоматизировать проверку и обновление установленных плагинов в WordPress
12.01.2026
Удаление и изменение авторских публикаций WordPress программно
10.02.2026
WooCommerce: автоматическое изменение статуса заказа при смене пользователя
17.06.2026
Как удалить meta generator из WordPress без плагинов
24.12.2025
Как отключить загрузку шрифтов в WordPress для ускорения сайта
18.01.2026