WP-CLI: возможности и автоматизация работы с WordPress

WP-CLI: возможности и автоматизация работы с WordPress

Управляйте WordPress через терминал: обновления, база данных, плагины, автоматизация и десятки полезных команд.

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

WordPress WP-CLI разработка WordPress PHP SSH

Что такое WP-CLI и зачем он нужен

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

Для владельца небольшого сайта это привычный и удобный способ работы.

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

Именно для таких ситуаций существует WP-CLI (WordPress Command Line Interface) — официальный инструмент командной строки для управления WordPress.

Вместо последовательности действий в браузере можно выполнить команду:

wp plugin list

И получить список установленных плагинов.

Или:

wp core version

Чтобы узнать версию WordPress.

А команда:

wp plugin update --all

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

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

Чем WP-CLI отличается от обычного управления сайтом

Главное отличие — возможность выполнять действия программно.

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

С WP-CLI эти действия можно объединить в скрипт.

Причём речь идёт не только об обновлениях.

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

Для кого предназначен WP-CLI

Несмотря на то что WP-CLI работает через терминал, он полезен не только системным администраторам.

WordPress-разработчикам

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

Веб-студиям и фрилансерам

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

WP-CLI позволяет автоматизировать многие из них и уменьшить объём ручной работы.

Системным администраторам и DevOps-инженерам

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

Владельцам сайтов

Обычному владельцу сайта необязательно самостоятельно изучать все команды.

Но понимание возможностей WP-CLI помогает оценивать, какие задачи можно автоматизировать и почему некоторые технические операции не требуют длительной ручной работы.

Как установить WP-CLI

Для использования WP-CLI необходим доступ к командной строке окружения, в котором установлен WordPress.

Обычно это:

  • SSH-доступ к серверу;

  • локальное окружение разработки;

  • Docker-контейнер;

  • терминал хостинг-панели, если он поддерживается.

На некоторых хостингах WP-CLI уже установлен.

Проверить это можно командой:

wp --info

Она покажет информацию об окружении, PHP и установленной версии WP-CLI.

Установка через PHAR

Один из официально документированных способов установки — загрузка исполняемого PHAR-файла.

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

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

php wp-cli.phar --info

Далее, если есть соответствующие права, сделать файл исполняемым и переместить его в каталог, доступный через PATH:

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

После этого команды можно выполнять непосредственно через wp.

Установка через sudo подходит не для всех серверов. На виртуальном хостинге могут действовать ограничения, поэтому способ установки следует выбирать с учётом окружения.

Также перед установкой важно проверить актуальные системные требования на официальном сайте WP-CLI.

Первые команды WP-CLI

Для начала необходимо перейти в каталог, в котором находится WordPress.

Например:

cd /var/www/example.com/public_html

После этого можно выполнить:

wp core version

Или получить список доступных команд:

wp help

Для просмотра справки по конкретной команде:

wp help plugin

Также доступен вариант:

wp plugin --help

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

wp --path=/var/www/example.com/public_html core version

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

Управление плагинами WordPress

Одна из наиболее востребованных возможностей WP-CLI — работа с плагинами.

Например, получить список установленных:

wp plugin list

Установить плагин из официального каталога WordPress:

wp plugin install query-monitor

Установить и сразу активировать:

wp plugin install query-monitor --activate

Активировать уже установленный:

wp plugin activate query-monitor

Деактивировать:

wp plugin deactivate query-monitor

Удалить:

wp plugin delete query-monitor

Последняя операция удаляет файлы плагина, но не гарантирует полного удаления всех созданных им данных.

Массовое обновление плагинов

Проверить доступные обновления:

wp plugin list --update=available

Обновить все плагины:

wp plugin update --all

Это особенно удобно при обслуживании нескольких WordPress-проектов.

Однако автоматизировать обновление без резервных копий и проверки совместимости не стоит.

WP-CLI упрощает выполнение операции, но не гарантирует, что обновлённый плагин будет корректно взаимодействовать с темой и остальными компонентами сайта.

Управление темами оформления

Аналогичным образом можно работать с темами.

Список установленных тем:

wp theme list

Установка:

wp theme install twentytwentyfive

Активация:

wp theme activate twentytwentyfive

Обновление всех тем:

wp theme update --all

Эти команды полезны при развёртывании новых проектов, подготовке тестовых сайтов и обслуживании существующих.

При этом изменение активной темы на рабочем сайте необходимо предварительно тестировать.

Установка и обновление самого WordPress

WP-CLI позволяет управлять ядром WordPress.

Проверить текущую версию:

wp core version

Проверить доступные обновления:

wp core check-update

Обновить WordPress:

wp core update

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

wp core update-db

Также можно проверить целостность файлов ядра:

wp core verify-checksums

Последняя команда сравнивает файлы WordPress с контрольными суммами официального дистрибутива.

Это полезно при диагностике подозрительных изменений системных файлов.

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

Работа с базой данных WordPress

Одна из самых полезных возможностей WP-CLI — операции с базой данных.

Например, создать SQL-экспорт:

wp db export backup.sql

Получить список таблиц:

wp db tables

Посмотреть размер базы данных:

wp db size

Выполнить SQL-запрос:

wp db query "SELECT COUNT(*) FROM wp_posts;"

В последнем примере предполагается, что у таблиц используется префикс wp_. В реальном проекте он может отличаться.

Восстановление базы данных

Для импорта SQL-файла предусмотрена команда:

wp db import backup.sql

Но выполнять её на рабочем сайте без подготовки опасно.

Импорт может изменить или перезаписать существующие данные. Перед операцией нужно проверить содержимое файла, сделать резервную копию и убедиться, что выбран правильный сайт.

Перенос WordPress на другой домен

Это одна из задач, в которых WP-CLI особенно удобен.

Представим, что сайт разрабатывался по адресу:

https://dev.example.com

А после завершения разработки должен работать на:

https://example.com

В базе данных могут находиться абсолютные URL изображений, ссылок и других ресурсов.

Простая замена текста непосредственно в SQL-файле может повредить сериализованные PHP-данные, в которых хранится информация о длине строк.

WP-CLI предоставляет специальную команду:

wp search-replace \
'https://dev.example.com' \
'https://example.com' \
--skip-columns=guid \
--dry-run

Параметр --dry-run позволяет проверить предполагаемые изменения без их сохранения.

Если результат корректен, можно выполнить замену:

wp search-replace \
'https://dev.example.com' \
'https://example.com' \
--skip-columns=guid

WP-CLI умеет учитывать сериализованные данные и обрабатывать их безопаснее, чем обычная текстовая замена SQL-дампа.

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

Массовое управление записями и страницами

Через WP-CLI можно получать информацию о публикациях, создавать записи и изменять их параметры.

Например:

wp post list --post_type=post

Получить только идентификаторы опубликованных записей:

wp post list \
--post_type=post \
--post_status=publish \
--field=ID

Создать новую запись:

wp post create \
--post_type=post \
--post_title="Тестовая статья" \
--post_status=draft

В результате будет создан черновик.

Где это удобно

Представим, что при разработке сайта необходимо создать 200 тестовых записей.

Вручную добавлять каждую через административную панель долго и неудобно.

С помощью WP-CLI можно написать небольшой скрипт, который создаст необходимые записи с заданными параметрами.

Такие сценарии особенно полезны при тестировании:

  • пагинации;

  • каталогов;

  • архивов;

  • фильтров;

  • шаблонов карточек;

  • производительности сайта.

Управление пользователями

WP-CLI позволяет работать с пользователями WordPress.

Получить список:

wp user list

Создать пользователя:

wp user create editor_test \
editor@example.com \
--role=editor

Изменить роль:

wp user set-role editor_test author

Проверить информацию:

wp user get editor_test

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

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

WP-Cron: управление запланированными задачами

WordPress использует собственный механизм планирования задач — WP-Cron.

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

WP-CLI позволяет просмотреть запланированные события:

wp cron event list

Выполнить задачи, время запуска которых уже наступило:

wp cron event run --due-now

Это особенно полезно при диагностике ситуации, когда запланированные публикации или фоновые операции не выполняются вовремя.

Почему это важно

Стандартный WP-Cron обычно инициируется при обращениях к сайту.

На проектах с низкой посещаемостью запуск задач может задерживаться.

Один из распространённых вариантов — использовать системный планировщик сервера для регулярного запуска WP-Cron через WP-CLI.

Например, при правильно настроенном окружении системный cron может периодически выполнять:

wp cron event run --due-now

При переходе на такой механизм нужно корректно настроить DISABLE_WP_CRON и системное расписание, чтобы не создавать дублирующие запуски.

Работа с кешированием

WP-CLI предоставляет команды для управления Object Cache.

Например:

wp cache flush

Команда очищает WordPress Object Cache.

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

Но здесь важно понимать различие.

Object Cache, кеш страниц и кеш CDN — не одно и то же.

wp cache flush не гарантирует очистку кеша, который хранится в отдельном плагине кеширования страниц, на уровне Nginx или в CDN.

Кроме того, если несколько сайтов используют общий Redis или Memcached, поведение очистки зависит от реализации persistent object cache. Перед выполнением команды необходимо учитывать конфигурацию сервера.

Оптимизация изображений и миниатюр

WordPress создаёт дополнительные размеры изображений для различных элементов сайта.

При изменении темы или регистрации новых размеров может понадобиться повторная генерация миниатюр.

Для этого используется команда:

wp media regenerate

Чтобы регенерировать только отсутствующие размеры:

wp media regenerate --only-missing

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

Поэтому для крупных медиабиблиотек желательно заранее оценить объём обработки и доступные ресурсы.

Работа с настройками WordPress

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

Например:

wp option get blogname

Получить название сайта.

Изменить его:

wp option update blogname "Мой сайт"

Посмотреть адрес WordPress:

wp option get siteurl

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

Но не все настройки WordPress хранятся только в базе данных. Некоторые значения могут быть переопределены константами в wp-config.php или кодом плагинов.

WP-CLI при разработке собственных тем и плагинов

Для разработчиков WP-CLI интересен не только как административный инструмент.

Он также помогает создавать заготовки новых компонентов.

Например:

wp scaffold plugin my-custom-plugin

Команда создаёт базовую структуру плагина.

А:

wp scaffold child-theme my-child-theme \
--parent_theme=twentytwentyfive

позволяет создать дочернюю тему.

Это экономит время на подготовке повторяющихся файлов и структуры проекта.

Можно создавать собственные команды

Допустим, в проекте есть сложный каталог товаров.

Разработчик может реализовать команду:

wp catalog sync

Которая будет синхронизировать данные с внешней системой.

Или:

wp catalog reindex

Для перестроения поискового индекса.

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

Но именно расширяемость делает WP-CLI особенно полезным для индивидуальной разработки.

Автоматизация обслуживания нескольких сайтов

Представим, что разработчик обслуживает 20 WordPress-проектов.

На каждом необходимо:

  • проверить версию WordPress;

  • получить список обновлений;

  • проверить плагины;

  • создать резервную копию;

  • выполнить необходимые технические операции.

Выполнять это вручную через административные панели долго.

WP-CLI позволяет использовать скрипты и конфигурации для повторяющихся действий.

Алиасы WP-CLI

Можно создать файл:

@staging:
  ssh: deploy@staging.example.com
  path: /var/www/site

@production:
  ssh: deploy@production.example.com
  path: /var/www/site

После этого обращаться к разным окружениям через алиасы:

wp @staging plugin list

Или:

wp @production core version

Это удобно для проектов, у которых существуют тестовая и рабочая версии.

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

WP-CLI и CI/CD

WP-CLI можно использовать в процессах автоматизированного развёртывания сайтов.

Например, после публикации новой версии проекта может потребоваться:

  1. проверить доступность WordPress;

  2. выполнить обновление структуры базы данных;

  3. обновить правила постоянных ссылок;

  4. очистить необходимый кеш;

  5. выполнить собственную команду миграции;

  6. проверить результат.

Часть этих действий можно автоматизировать через GitHub Actions, GitLab CI/CD или другие инструменты.

Пример отдельных команд:

wp core is-installed
wp core update-db
wp rewrite flush

Но не следует запускать такие операции после каждого изменения кода без необходимости.

Например, перестроение rewrite rules требуется не при любом деплое.

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

WP-CLI и WooCommerce

Для интернет-магазинов WP-CLI также может быть полезен.

WooCommerce поддерживает собственные команды WP-CLI для работы с данными магазина, но конкретный набор зависит от установленной версии WooCommerce и доступных расширений.

С помощью соответствующих команд и собственных скриптов можно автоматизировать:

  • операции с товарами;

  • обработку категорий;

  • импорт и экспорт данных;

  • обновление характеристик;

  • синхронизацию с внешними системами;

  • служебные операции обслуживания.

Например, при наличии подходящей команды WooCommerce можно получить справку:

wp help wc

Для сложных массовых изменений данных интернет-магазина особенно важно использовать штатные API WooCommerce, а не напрямую изменять произвольные таблицы SQL-запросами.

WP-CLI и современные AI-агенты

Отдельного внимания заслуживает использование WP-CLI вместе с AI-инструментами.

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

Если агенту предоставлен контролируемый доступ к терминалу, WP-CLI может стать одним из инструментов взаимодействия с WordPress.

Например, разработчик может поставить задачу:

«Проверь установленные плагины, найди доступные обновления и подготовь отчёт».

Агент может использовать:

wp plugin list --format=json

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

Или выполнить:

wp core verify-checksums

Для проверки целостности файлов ядра.

В актуальном справочнике WP-CLI также представлены команды для работы с WordPress Abilities API, AI Client и коннекторами.

Это расширяет возможности интеграции WordPress с автоматизированными системами.

Но здесь есть важное ограничение: AI-агенту нельзя бездумно предоставлять полный доступ к рабочему серверу.

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

Полезные команды WP-CLI в одной таблице

Команда Назначение
wp --info Информация об окружении
wp core version Версия WordPress
wp core check-update Проверка обновлений ядра
wp core verify-checksums Проверка файлов ядра
wp plugin list Список плагинов
wp plugin update --all Обновление плагинов
wp theme list Список тем
wp db export backup.sql Экспорт базы данных
wp db size Размер базы данных
wp search-replace Поиск и замена в базе
wp cache flush Очистка Object Cache
wp cron event list Список запланированных задач
wp user list Список пользователей
wp post list Список записей
wp media regenerate Генерация миниатюр
wp rewrite flush Обновление rewrite rules
wp scaffold plugin Создание заготовки плагина
wp help Справка по командам

Преимущества WP-CLI перед административной панелью

Скорость выполнения операций

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

Одна команда может выполнить операцию, для которой в административной панели потребуется несколько шагов.

Массовая обработка данных

WP-CLI особенно полезен при работе с большим количеством записей, пользователей, товаров или файлов.

Массовые операции можно разбивать на партии, запускать по расписанию и контролировать через скрипты.

Автоматизация

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

Это помогает стандартизировать техническое обслуживание.

Работа без браузера

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

В некоторых случаях помогают параметры:

--skip-plugins
--skip-themes

Однако они не решают все проблемы загрузки WordPress. Например, --skip-plugins не отключает автоматически must-use плагины.

Интеграция с другими инструментами

WP-CLI хорошо сочетается с Bash, PHP, системным cron, Git и системами CI/CD.

Благодаря форматам вывода, включая JSON и CSV для поддерживающих их команд, результаты удобно обрабатывать программно.

Недостатки и ограничения WP-CLI

Несмотря на возможности, WP-CLI не является универсальной заменой административной панели.

У инструмента есть свои особенности.

Требуются технические знания. Ошибка в команде может изменить данные или нарушить работу сайта.

Нужен доступ к окружению. Не каждый хостинг предоставляет SSH или возможность использовать WP-CLI.

Не все плагины поддерживают командную строку. Некоторые функции доступны только через административный интерфейс или собственные API.

Автоматизация требует контроля. Скрипт может быстро выполнить как правильную, так и ошибочную операцию на множестве сайтов.

Команды не заменяют тестирование. Успешное обновление плагина ещё не означает, что сайт работает корректно.

Поэтому WP-CLI стоит воспринимать как мощный инструмент разработчика, который требует внимательного использования.

Правила безопасной работы с WP-CLI

Перед выполнением потенциально опасных операций желательно соблюдать несколько правил.

  1. Создавать резервные копии базы данных и файлов.

  2. Проверять, на каком сайте выполняется команда.

  3. Использовать тестовое окружение для сложных изменений.

  4. Не запускать команды от root без необходимости.

  5. Не хранить пароли в открытых скриптах и репозиториях.

  6. Использовать --dry-run, если команда поддерживает предварительный просмотр.

  7. Проверять результаты после выполнения операций.

  8. Ограничивать доступ к SSH и ключам авторизации.

  9. Не запускать неизвестные скрипты без изучения их содержимого.

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

Когда WP-CLI действительно необходим

Для простого сайта-визитки, который обновляется несколько раз в год, использование WP-CLI необязательно.

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

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

WP-CLI особенно полезен, если:

  • на обслуживании находится много сайтов;

  • выполняются частые обновления;

  • регулярно создаются тестовые окружения;

  • необходимо переносить проекты;

  • используются собственные плагины и нестандартные функции;

  • требуется массовая обработка данных;

  • автоматизируется развёртывание;

  • выполняется диагностика ошибок;

  • используются CI/CD и DevOps-процессы.

В этих сценариях инструмент может существенно сократить количество ручных операций.

Вывод: WP-CLI превращает WordPress в инструмент автоматизации

WP-CLI — гораздо больше, чем способ обновить плагины через терминал.

Это полноценный интерфейс управления WordPress, который открывает доступ к административным, техническим и программным операциям.

С его помощью можно устанавливать и обновлять компоненты, управлять базой данных, переносить сайты, работать с пользователями и контентом, выполнять задания WP-Cron, создавать собственные команды и автоматизировать повторяющиеся процессы.

Для разработчика это означает меньше ручной работы и больше контроля над проектом.

Для веб-студии — возможность стандартизировать обслуживание множества сайтов.

Для сложных WordPress-проектов — дополнительный инструмент построения надёжных процессов разработки и развёртывания.

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

Его главное преимущество в другом:

WP-CLI позволяет превратить повторяющиеся действия с WordPress в управляемые, воспроизводимые и автоматизированные процессы.

И чем больше проектов находится в работе, тем заметнее становится ценность такого подхода.