WP-CLI — офіційний інструмент командного рядка для WordPress. За його допомогою можна керувати плагінами, темами, користувачами та базою даних прямо з SSH, без браузера.
Встановлення WP-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 --version
# WP-CLI 2.10.0
Основні команди
Оновлення
# Оновити WordPress core
wp core update
# Оновити всі плагіни
wp plugin update --all
# Оновити всі теми
wp theme update --all
# Оновити все одразу
wp core update && wp plugin update --all && wp theme update --all
Плагіни та теми
# Встановити плагін
wp plugin install wordfence --activate
# Деактивувати плагін
wp plugin deactivate contact-form-7
# Список плагінів
wp plugin list
# Видалити плагін
wp plugin delete hello-dolly
Користувачі
# Створити адміністратора
wp user create admin2 admin2@example.com --role=administrator --user_pass=SecurePass123!
# Змінити пароль
wp user update admin --user_pass=NewPassword456!
# Список користувачів
wp user list --role=administrator
База даних
# Експорт БД
wp db export backup-$(date +%Y%m%d).sql
# Імпорт БД
wp db import backup.sql
# Пошук і заміна URL (під час міграції!)
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --all-tables
wp search-replace автоматично обробляє серіалізовані дані PHP — це безпечніше за ручний SQL UPDATE.Корисні команди для налагодження
# Очистити кеш
wp cache flush
# Регенерувати мініатюри
wp media regenerate --yes
# Перевірити та відновити БД
wp db check
wp db repair
# Отримати/встановити опцію
wp option get siteurl
wp option update blogname "Мій сайт"
| Команда | Що робить |
|---|---|
| wp core update | Оновлення WP до останньої версії |
| wp plugin update --all | Оновлення всіх плагінів |
| wp db export | Резервна копія БД |
| wp search-replace | Зміна URL під час міграції |
| wp cache flush | Очищення кешу |
Часті помилки при роботі з WP-CLI
Майже всі помилки WP-CLI пояснюються трьома причинами: невірний шлях, права root і різний PHP для CLI та вебу.
Error: This does not seem to be a WordPress installation.
WP-CLI шукає файл wp-load.php у поточній директорії і вище по дереву. Якщо команда запущена не з кореня сайту, вкажіть шлях явно: wp --path=/var/www/example.com/public_html core version.
Error: YIKES! It looks like you're running this as super user (root).
WP-CLI за замовчуванням блокує запуск від root — зміна власника файлів від root ламає права для користувача PHP-FPM. Якщо ви точно розумієте ризик (наприклад, у контейнері з єдиним користувачем), додайте прапорець --allow-root. В інших випадках перемкніться на користувача сайту: sudo -u www-data wp core version --path=....
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
Команда wp search-replace на великій базі (десятки тисяч рядків postmeta) впирається в ліміт пам'яті PHP CLI — він задається окремо від ліміту PHP для веб-сервера, у власному php.ini для CLI-режиму. Тимчасово підніміть ліміт: php -d memory_limit=512M $(which wp) search-replace ....
WP-CLI чи адмінка: коли що використовувати
| Завдання | WP-CLI | wp-admin |
|---|---|---|
| Масове оновлення 50+ плагінів | Секунди, один скрипт | Клік по кожному або Bulk actions у браузері |
| Разова правка тексту на сторінці | Незручно | Швидше |
| Автоматизація в CI/CD | Єдиний варіант | Недоступно |
| Робота при вимкненому фронтенді | Працює завжди | Недоступна при критичній помилці сайту |
Головна перевага WP-CLI — він звертається до WordPress Core напряму, минаючи HTTP і браузер, тому працює навіть коли сайт віддає білий екран або 500-у помилку.
Коли WP-CLI не підходить
На частині тарифів віртуального хостингу SSH-доступ взагалі не видається — тоді WP-CLI недоступний фізично, див. SSH-доступ на хостингу cPanel для перевірки, які тарифи його підтримують. PHP CLI і PHP для веб-сервера на деяких конфігураціях — це різні бінарники з різними версіями і налаштуваннями php.ini: команда може відпрацювати під PHP 8.3 в CLI, а сайт при цьому висить на PHP 7.4 у вебі, і поведінка відрізнятиметься. Для разової правки однієї сторінки чи перевірки одного плагіна відкрити адмінку майже завжди швидше, ніж згадувати синтаксис команди.
Як перевірити результат
Після масових змін через WP-CLI перевіряйте не лише «команда завершилася без помилок», а й реальний стан сайту:
# Перевірити, що WordPress встановлений і доступний
wp core is-installed; echo "Код виходу: $?"
# Загальна інформація про середовище
wp cli info
# Перевірити стан сайту після масових змін
wp plugin list --status=active
wp option get siteurl
Код виходу 0 після wp core is-installed підтверджує, що інсталяція ціла. Ненульовий код у скрипті автоматизації — сигнал зупинити виконання і не запускати наступні кроки (наприклад, деплой) на зламаному сайті.