Управление вашим сайтом WordPress с помощью WP CLI: лучшие практики и советы

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.

Источники и ссылки


Комментарии загружаются…