WP-CLI

WP-CLI (WP Command Line Interface) — это интерфейс командной строки для WordPress. Он позволяет устанавливать/обновлять/удалять темы и плагины, создавать и просматривать любые данные на сайте, изменять настройки сайта и многое другое. Все это делается из командной строки без использования браузера.

Базовые команды:

# Версия
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.

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

Использование 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 при условии, что хостинг такую возможность даёт.

Заметка по алиасам

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

Есть несколько способов сделать алиасы постоянными:

  1. Файл .bashrc или .bash_profile: Вы можете добавить свои алиасы в файл ~/.bashrc или ~/.bash_profile в домашней директории. При входе в систему эти файлы будут загружаться, и ваши алиасы станут доступными в любой новой сессии.

  2. Файл .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.

Список всех команд

Смотрите в разделе «Команды».