Как использовать WP-CLI для массовых изменений в WordPress

Что такое WP-CLI и зачем он нужен для массовых изменений

WP-CLI — это инструмент командной строки для управления WordPress. Он позволяет выполнять операции без захода в админку, что значительно ускоряет массовые изменения: обновление плагинов, изменение метаданных, массовое удаление постов и многое другое.

Использование WP-CLI подходит для разработчиков и администраторов, работающих с большим количеством данных, где интерфейс WordPress неэффективен.

Диагностика: когда стоит применять WP-CLI для массовых изменений

Если вы сталкиваетесь с задачами, которые включают работу с сотнями или тысячами постов, пользователей или терминов таксономий, и стандартный интерфейс подвисает или слишком медленный — значит пора использовать WP-CLI.

Примеры ситуаций:

  • Массовое удаление постов по категории или метке.
  • Обновление пользовательских полей у большого количества записей.
  • Переключение статусов заказов WooCommerce по условию.
  • Массовая замена текста в контенте.

Пошаговое решение: как выполнить массовое удаление постов из категории через WP-CLI

1. Подключение к серверу через SSH

Для работы с WP-CLI нужен доступ по SSH к серверу. Подключитесь к серверу командой:

ssh user@yourserver.com

2. Проверка доступности WP-CLI

Введите команду:

wp --info

Если выводит информацию об установке — WP-CLI готов к работе.

3. Получение списка ID постов из категории

Для удаления нужно получить ID постов, например, из категории с слагом old-category:

wp post list --category=old-category --field=ID

Вы увидите список ID через строку.

4. Массовое удаление постов

Используйте команду с передачей ID в цикле:

wp post delete $(wp post list --category=old-category --field=ID) --force

Флаг --force удалит посты без перемещения в корзину.

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

Проверьте, что посты удалены, повторив запрос:

wp post list --category=old-category --field=ID

Если вывод пустой — удаление прошло успешно.

Дополнительно зайдите в админку WordPress и проверьте раздел «Записи» — посты из категории должны отсутствовать.

Частые ошибки и как их исправить

  • Ошибка "wp: command not found" — WP-CLI не установлен или не в PATH. Проверьте установку или используйте полный путь к wp-cli (обычно /usr/local/bin/wp).
  • Не удаляются посты с ошибкой прав — проверьте права пользователя SSH и пользователя базы данных. WP-CLI должен запускаться от пользователя, имеющего доступ к файлам WordPress и БД.
  • Команда возвращает пустой список ID — убедитесь, что категория с указанным слагом существует и в ней есть посты.
  • Удаление происходит не полностью — проверьте, нет ли дополнительных ограничений, например, плагинов безопасности или кастомных ролей.

Практические советы по безопасности и производительности

  • Перед массовыми изменениями сделайте резервную копию базы данных и файлов.
  • Для больших сайтов используйте WP-CLI с ограничением по количеству постов, чтобы не перегрузить сервер. Например, добавьте параметр --number=100 и обрабатывайте по частям.
  • Используйте --dry-run (если поддерживает команда) или предварительно выводите список объектов для изменения.
  • Ограничьте доступ к SSH и WP-CLI только доверенным администраторам.

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

Допустим, нужно добавить или изменить метаполе _custom_flag со значением 1 для всех постов категории news:

POST_IDS=$(wp post list --category=news --field=ID) 
for ID in $POST_IDS; do 
  wp post meta update $ID _custom_flag 1 
done

Проверить обновление:

wp post meta get 123 _custom_flag

где 123 — ID одного из обновлённых постов.

Сравнение методов массовых изменений в WordPress

МетодПлюсыМинусыКогда использовать
Админка WordPressПростота, визуальный контрольМедленно, неудобно для больших объемовМалые изменения, новичкам
WP-CLIСкорость, мощь, скриптыТребует SSH, знания командной строкиМассовые, повторяющиеся операции
Плагины массовых измененийИнтерфейс, функционалНагрузка, конфликты, безопасностьПользователям без SSH доступа
Как создать автоматические отчёты в WordPress с помощью WPExpert Review
07.01.2026
Как сделать автоматический sitemap в WordPress с помощью кода
08.02.2026
Автоматическое удаление неактивных пользователей WordPress по дате последнего входа
23.05.2026
Автоматическое отключение комментариев на старых публикациях WordPress
14.02.2026
Как удалить неиспользуемые теги в WordPress с помощью кода
05.02.2026