WP-CLI
WP-CLI (WP Command Line Interface) — это интерфейс командной строки для WordPress. Он позволяет устанавливать/обновлять/удалять темы и плагины, создавать и просматривать любые данные на сайте, изменять настройки сайта и многое другое. Все это делается из командной строки без использования браузера.
GitHub: https://github.com/wp-cli/wp-cli
Неофициальная дока: https://wpcli.dev
- Установка WP-CLI
- Обновление WP-CLI (оф. сайт)
- Сайт WP-CLI
- Учебник на make.wordpress.org
- WP-CLI Tips
- Сканер уязвимостей Wordfence CLI: https://zevilz.dev/posts/1095/
Базовые команды:
# Версия wp cli version # Обновление wp cli update --yes # Обновление всех доп. пакетов wp package update
Полный список: wp cli.
Зачем нужен WP-CLI?
Для того, чтобы ускорить и упростить рутинные действия в процессе разработки сайта, а также дать возможность управлять сайтом из командной строки на удаленном сервере.
WP-CLI может многое из того что обычно делается через админку WordPress, например:
-
Команда wp plugin install позволяет устанавливать и активировать плагин из каталога WordPress:
$ wp plugin install user-switching --activate Installing User Switching (1.0.9) Downloading install package from https://downloads.wordpress.org/plugin/user-switching.1.0.9.zip... Unpacking the package... Installing the plugin... Plugin installed successfully. Activating 'user-switching'... Plugin 'user-switching' activated. Success: Installed 1 of 1 plugins.
WP-CLI также включает команды которых нет в арсенале админки WordPress. Например:
-
Командой wp db export можно сделать экспорт Базы Данных:
wp db export - | gzip > ./db_backup-$(date +%Y-%m-%d-%H%M%S).sql.gz
-
Команда wp cron event list позволяет посмотреть все крон события:
$ wp cron event list +------------------------------------+---------------------+--------------------+---------------+ | hook | next_run_gmt | next_run_relative | recurrence | +------------------------------------+---------------------+--------------------+---------------+ | action_scheduler_run_queue | 2023-08-07 15:11:17 | now | 1 minute | | wp_scheduled_delete | 2023-08-08 10:49:16 | 1 hour 55 minutes | 1 day | | delete_expired_transients | 2023-08-08 10:49:16 | 1 hour 55 minutes | 1 day | | wp_scheduled_auto_draft_delete | 2023-08-08 10:59:02 | 2 hours 4 minutes | 1 day | | wpseo-reindex-links | 2023-08-08 12:37:07 | 3 hours 43 minutes | 1 day | | wp_site_health_scheduled_check | 2023-08-08 14:41:17 | 5 hours 47 minutes | 1 week | | wpseo_permalink_structure_check | 2023-08-08 14:41:17 | 5 hours 47 minutes | 1 day | | wpseo-reindex | 2023-08-08 14:42:32 | 5 hours 48 minutes | 1 day | +------------------------------------+---------------------+--------------------+---------------+
Установка WP-CLI
Перед установкой убедитесь что WP-CLI еще нет в вашем окружении. Для этого запустите такую команду:
wp --version
Если в ответ появилась версия: WP-CLI 2.5.0
, то WP-CLI у вас уже установлен.
Установка на Linux и Windows WSL
Для установки WP-CLI нужно скачать пакет wp-cli.phar
. Сделать это можно с помощью утилиты curl или wget:
curl -L https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar > wp-cli.phar
Чтобы проверить этот пакет запустите его с параметром --info
:
php wp-cli.phar --info
Должны увидеть информацию:
PHP binary: /usr/bin/php7.4.1 PHP version: 7.4.1 php.ini used: /home/web/etc/php/php.ini SQL modes: WP-CLI root dir: phar://wp-cli.phar WP-CLI global config: WP-CLI version: 2.5.0
Чтобы можно было писать wp
в любой директории вместо php wp-cli.phar
, нужно сделать файл исполняемым и скопировать его в любую системную директорию (посмотреть системные директории можно командой echo $PATH
).
chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/bin/wp
Все! wp-cli установлен!
Теперь команды wp-cli можно запускать из любой директории где находится WP.
Подробнее про установку читайте здесь:
- wordpress.org: Установка WP-CLI (оф. сайт, англ)
- wpmag.ru: Установка WP-CLI (рус)
Использование wp-cli.phar напрямую (на шаред хостингах)
Иногда нет возможности запускать WP-CLI через команду wp
, например на шаред хостинге. Часто на таких хостингах PHP cli работает на версии PHP отличной от той которую использует WEB-сервер, например PHP 5.2 (sweb) или PHP 5.6 (beget). Это приводит к фаталам при запуске WP-CLI.
Чтобы решить эту проблему, можно скачать wp-cli.phar
в любое доступное место и использовать его так:
php7.4 /home/path/to/wp-cli.phar // или /usr/bin/php7.4 /home/path/to/wp-cli.phar
Где php7.4
версия php для обработки phar-файла (хостинг должен такое поддерживать), расположенного по пути (вы его туда скачали) /home/path/to/wp-cli.phar
.
Команда выше - это тоже самое, что выполнить команду wp, то есть привычные команды будут выглядеть примерно так:
php7.4 /home/path/to/wp-cli.phar option get home
Это не удобно, сделаем алиас:
alias wp='/usr/bin/php7.4 /home/path/to/wp-cli.phar'
Теперь можно выполнять команду классически, то есть
wp option get home
Благодаря этим знаниям, вы можете выполнять команду wp
под любой доступной версией php при условии, что хостинг такую возможность даёт.
Заметка по алиасам
Алиасы, созданные в консоли, сохраняются только на время текущей сессии. Когда вы закрываете консоль и открываете её снова, алиасы сбрасываются.
Есть несколько способов сделать алиасы постоянными:
-
Файл
.bashrc
или.bash_profile
: Вы можете добавить свои алиасы в файл~/.bashrc
или~/.bash_profile
в домашней директории. При входе в систему эти файлы будут загружаться, и ваши алиасы станут доступными в любой новой сессии. - Файл
.bash_aliases
: В некоторых дистрибутивах Linux, например, Ubuntu, есть файл~/.bash_aliases
, предназначенный специально для хранения алиасов. Если добавить алиасы туда, то они также будут доступны в новых сессиях.
Установка на Windows
Убедитесь, что php установлен и находится в глобальной видимости. Для этого запустите в консоли такую команду:
php -version

Если команда php
не работает, то нужно установить php на компьютер и добавить папку с исполняющим файлом в переменную окружения PATH.
Скачайте wp-cli.phar
вручную (ссылка на скачивание) и сохраните его в папку, например, C:\wp-cli
Создайте файл wp.bat
в папке C:\wp-cli
со следующим содержимым:
@ECHO OFF php "c:/wp-cli/wp-cli.phar" %*
Добавьте C:\wp-cli
в переменную окружения path:
setx path "%path%;c:\wp-cli"
Теперь вы можете использовать WP-CLI из любого места командной строки Windows.
Список всех команд
Смотрите в разделе «Команды».