WP-CLI (WordPress Command Line Interface) управляет сайтом из терминала: пользователи, плагины, темы, посты, дамп БД, кэш. На сервере с SSH это часто быстрее и удобнее админки, плюс команды легко встроить в скрипты и CI.
Установка WP-CLI
Нужен PHP CLI. Дальше:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp wp --info
Команды ниже запускайте из каталога WordPress (где wp-config.php) или с --path=/path/to/wp.
Пользователи и роли
wp user create username user@example.com --role=author wp user set-role username author wp user delete username
При удалении WP-CLI спросит, что делать с контентом пользователя (переназначить или удалить). Для скриптов добавьте флаги подтверждения из wp help user delete.
Посты, страницы, термины
wp post create --post_type=page --post_title='Название страницы' --post_content='Содержимое страницы' wp post update post_id --post_title='Новое название' --post_content='Новое содержимое' wp post delete post_id wp term create category 'Название категории' wp term delete category category_id
Плагины и темы
wp plugin install plugin_name wp plugin update plugin_name wp plugin activate plugin_name wp plugin deactivate plugin_name wp plugin delete plugin_name wp theme install theme_name wp theme update theme_name wp theme activate theme_name
Обновить всё сразу: wp plugin update --all и wp theme update --all. Перед массовым обновлением на проде имеет смысл бэкап БД.
Бэкап и восстановление БД
wp db export backup.sql wp db import backup.sql
Это дамп MySQL/MariaDB. Файлы wp-content (медиа, плагины, темы) копируйте отдельно: rsync, tar, снапшот хостинга.
Автоматизация
Типичный сценарий: cron + shell-скрипт. Пример каркаса:
#!/usr/bin/env bash set -euo pipefail cd /var/www/site wp db export "/backup/db-$(date +%F).sql" # scp / rsync на удалённое хранилище
Запуск: bash script.sh или из crontab. Права на каталог бэкапа и путь к wp проверяйте от того же пользователя, от которого крутится cron.
Оптимизация БД и кэш
wp db optimize wp cache flush
wp db optimize гоняет OPTIMIZE TABLE. wp cache flush сбрасывает object cache (и то, что отдаёт WP_Object_Cache / drop-in). На object cache Redis/Memcached это часто помогает после смены опций или деплоя.
Опции (настройки)
Через wp option правят записи в таблице options (не ACF field groups, а ключи wp_options):
wp option add my_custom_field 'Значение поля' wp option update my_custom_field 'Новое значение' wp option delete my_custom_field wp option get siteurl
Интеграции и расширения
Сам WP-CLI не «подключает» внешние сервисы. Обычно ставят плагин с CLI-командами или пишут свой пакет команд. Для деплоя и обслуживания чаще комбинируют WP-CLI с shell, Ansible, GitHub Actions и т.п.
Практические советы
- Читайте справку:
wp help,wp help post create. - Флаги вроде
--post_type,--format=json,--pathэкономят время в скриптах. - Пайплайны:
wp post list --format=idsи дальше обработка id в цикле. - На shared-хостинге иногда нужен
php wp-cli.pharвместо глобальногоwp. - Перед опасными командами (
db import, массовое удаление) делайте дамп.
Документация и список команд: wp-cli.org и developer.wordpress.org/cli/commands.