WP CLI — Как установить, запустить и начать пользоваться

Инструкция по WP CLI (Command Line Interface)
WP CLI

Предыстория

Нужно было написать поддержку WP CLI в плагине.

WP CLI может быть полезен в случаях, когда удобно работать с командной строкой, нежели с веб-интерфейсом. Например для длительных или «тяжелых» задач типа импорта данных или массовых операций перебора. В моем случае основная цель — запуск фоновых процессов импорта товаров и других процессов.

Как запустить WP-CLI на Open Server

Для запуска на WP CLI под Open Server нужно:

Убедиться что у вас php работает из под консоли. Как это сделать описано тут.

Провести процедуру, аналогичную установке composer под OpenServer:

  • Открыть консоль OPServer
    WP CLI - Как установить, запустить и начать пользоваться 1
  • Перейти в папку с актуальной версией
    PHP cd modules/php/PHP_7.4
  • скачать phar файл или набрать в консоли
    curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  • Проверить работу командой
    php wp-cli.phar --info

    WP CLI - Как установить, запустить и начать пользоваться 2

  • Теперь cli по-факту работает. Но нам нужно, что бы она работала аналогично документации.
    Для этого создадим ссылку

    echo "%~dp0wp-cli.phar" %*>wp.bat
  • Профит. Все, теперь мы можем использовать любые команды WP CLI, например: wp --info
    
    $ wp --info
    OS: Windows NT 10.0 build 22000 (Windows 10) AMD64
    Shell: C:\Windows\system32\cmd.exe
    PHP binary: c:\OpenServer\modules\php\PHP_7.4\php.exe
    PHP version: 7.4.29
    php.ini used: C:\openserver\modules\php\PHP_7.4\php.ini
    MySQL binary:
    MySQL version:
    SQL modes:
    WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
    WP-CLI vendor dir: phar://wp-cli.phar/vendor
    WP_CLI phar path: C:\OpenServer\modules\php\PHP_7.4
    WP-CLI packages dir:
    WP-CLI cache dir: c:\openserver/.wp-cli/cache
    WP-CLI global config:
    WP-CLI project config:
    WP-CLI version: 2.7.1
    

    WP CLI - Как установить, запустить и начать пользоваться 3

 

Список команд

Полный список команд интерфейса:

Команда Описание
wp admin Открывает /wp-admin/ в браузере.
wp cache Добавляет, удаляет, формирует кеш.
wp cap Добавляет, удаляет, показывает список возможностей пользователей.
wp cli Посмотреть версию WP-CLI, проверить обновления.
wp comment Создавать, удалять, модерировать комментарии.
wp config Генерирует и выводит wp-config.php файл.
wp core Скачивает, устанавливает и обновляет движок.
wp cron Тестирование, запуск и удаление Cron событий.
wp db Операции с базой данных.
wp dist-archive Создает архив для дистрибуции
wp embed Просмотр oEmbed источников, очистка кеша.
wp eval Выполняет произвольный PHP код.
wp eval-file Загружает и выполняет PHP файл.
wp export Экспорт контента в WXR файл.
wp find Поиск установленных WP.
wp help Помощь по WP-CLI.
wp i18n Инструменты для перевода WP.
wp import Импорт контента из WXR файла.
wp language Установка, активация и просмотр языков.
wp maintenance-mode Активация и деактивация режима обслуживания.
wp media Импорт медиафайлов, пересоздание миниатюр, список зарегистрированных размеров.
wp menu Просмотр, создание, удаление меню.
wp network Операции по работе с сетью.
wp option Получение всех опций сайта.
wp package Просмотр, установка и удаление WP-CLI пакетов.
wp plugin Просмотр, установка, активация и удаление плагинов.
wp post Просмотр постов.
wp post-type Просмотр информации обо всех типах постов.
wp profile Работа с профилями
wp rewrite Список правил перенаправления, ЧПУ.
wp role Просмотр ролей пользователей.
wp scaffold Генератор кода для типов постов, таксономий, плагинов и т.д.
wp search-replace Правильный поиск и замена по базе данных.
wp server Запускает сервер для WP.
wp shell Открывает PHP консоль для тестирования кода.
wp sidebar Список сайдбаров.
wp site Работа с мультисайтом, создание, удаление и т.д.
wp super-admin Работа с юзерами в режиме мультисайта.
wp taxonomy Получение информации обо всех таксономиях.
wp term Просмотр и работа с элементами таксономий.
wp theme Просмотр, установка, активация и удаление тем.
wp transient Работа с временным кешем Transient.
wp user Работа с пользователями.
wp widget Работа с виджетами.

Как написать php обработчик команды

Как написать обработчик подробно написано в оф. документации к WP CLI https://wp-cli.org/#extending

Я приведу свой пример, для наглядности:

class MY_CLI
{
    /** Регистрация хука **/
    public static function add_action(){
        add_action( 'cli_init', [self::class, 'register_command'], 10, 1);
    }
    
    /** Регистрация консольной команды **/
    public static function register_command(){
        \WP_CLI::add_command( 'woo2iiko', new self());
    }

    /**
     * Получаем инстанс плагина, содержащего данные о версии
    **/
    public function __construct(){
        $this->plugin = WP_Plugin::getInstance();
    }

    /**
     * Print a plugin version
     *
     * @example wp woo2iiko version
     * @return void
     */
    public function version(){
        \WP_CLI::log( $this->plugin->version );
    }
}
// Вызов
MY_CLI::add_action();

Результат

PS C:\OpenServer\domains\woocommerce.loc> wp woo2iiko version
1.0.4.5

WP CLI - Как установить, запустить и начать пользоваться 4

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *