Установка, обновление и управление плагинами WordPress с помощью WP-CLI

Опубликовано: 2022-07-26

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

Все команды WP-CLI имеют одинаковую структуру. Всегда есть родительская команда (например, wp plugin ) и подкоманда (например, install ), за которыми следуют параметры и переключатели. В этой статье мы сосредоточимся на wp plugin и его подкомандах, но вы можете увидеть более подробное объяснение в нашем руководстве по структуре команд WP-CLI.

В этой статье в качестве примера использовалась команда wp plugin , подчеркивая, как устанавливать и активировать плагины с помощью WP-CLI. В этой статье мы углубимся в то, как управлять нашими плагинами с помощью интерфейса командной строки WordPress.

Установка и активация плагинов

В настоящее время существует 16 официальных подкоманд для родительской команды wp plugin . В этом разделе мы рассмотрим подкоманды для установки и активации. Мы также рассмотрим, как устанавливать и активировать плагины с помощью одной команды. Мы также рассмотрим, как устанавливать плагины из источников, отличных от каталога плагинов WordPress.

Введите wp plugin install , а затем официальный слаг плагина, чтобы установить последнюю версию:

установка плагина wp hello-dolly
Установка Hello Dolly (1.7.2)
Загрузка установочного пакета с https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip...
Использование кэшированного файла '/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip'...
Подлинность hello-dolly.1.7.2.zip проверить не удалось, так как подпись не найдена.
Распаковка пакета...
Установка плагина...
Плагин успешно установлен.
Успех: установлен 1 из 1 плагинов.

Далее мы активируем плагин с помощью команды активации плагина wp plugin activate :

Плагин wp активирует hello-dolly
Плагин 'hello-dolly' активирован.
Успех: активирован 1 из 1 плагинов.

Поиск слага плагина

Обратите внимание, что слаг часто отличается от имени плагина. Слаг отображается в URL-адресе плагина в каталоге плагинов WordPress, но вы можете ускорить свой рабочий процесс, придерживаясь командной строки и используя подкоманду search , за которой следуют два параметра и их значения: --per-page=1 и --fields=name,slug .

Необязательный параметр --per-page сообщает WP-CLI, сколько результатов показать нам, в данном случае только один. По умолчанию будет отображаться 10 результатов, если вы не укажете этот параметр. Здесь я присвоил ему значение 1 , так как хочу видеть только наиболее релевантный результат.

Параметр --fields указывает WP-CLI запрашивать определенные поля у API, в данном случае имя плагина и ярлык. Здесь можно использовать широкий диапазон значений, включая version , чтобы увидеть текущий номер версии, и rating , чтобы увидеть рейтинг плагина как в процентах, так и в общем количестве рейтингов. Вместо этого вы можете использовать --field=<field> , если хотите отобразить результат только одного поля. Вы должны использовать параметр --fields или --field с командой wp plugin search .

wp plugin search "wp offload media" --per-page=1 --fields=name,slug
Успех: показан 1 из 66 плагинов.
+------------------------------------------------- -------------------------------+------------------ --------+
| имя | слизняк |
+------------------------------------------------- -------------------------------+------------------ --------+
| WP Offload Media Lite для Amazon S3, DigitalOcean Spaces и Google Cloud Sto | amazon-s3-и-cloudfront |
| ярость | |
+------------------------------------------------- -------------------------------+------------------ --------+

Поскольку ответом на эту команду является список, это хорошая возможность показать, на что способен параметр --format . Давайте попросим WP-CLI предоставить нам этот список в формате JSON, а затем передать его через утилиту jq для более красивого форматирования. Утилита jq — это облегченный JSON-процессор командной строки, который можно установить по приведенной выше ссылке или попробовать в Интернете. Обязательно опустите | jq | jq из приведенной ниже команды, если она у вас не установлена.

Когда мы запрашиваем выходные данные в формате JSON, WP-CLI опускает сообщение о состоянии, чтобы не повредить JSON:


$ wp plugin search "wp offload media" --per-page=1 --fields=name,slug --format=json | jq
[
  {
    "name": "WP Offload Media Lite для Amazon S3, DigitalOcean Spaces и Google Cloud Storage",
    "slug": "amazon-s3-и-cloudfront"
  }
]

Чтобы активировать плагин после его установки, используйте wp plugin activate , а затем официальный ярлык плагина.

Установка и активация плагина одновременно

Когда дело доходит до управления вашими плагинами с помощью WP-CLI, одним из больших преимуществ является то, что вы можете установить и активировать плагин с помощью одной команды. activate можно как подкоманду с wp plugin , но также можно использовать как параметр с командой wp plugin install :

# Установка и активация плагина одновременно
установить плагин wp --активировать hello-dolly

Установка определенной версии плагина

Нередко вы хотите установить определенную версию плагина для целей тестирования. Пока нужная вам версия все еще доступна в каталоге плагинов WordPress, вы можете выбрать любую версию, которую считаете подходящей:

# Установка определенной версии плагина
установка плагина wp woocommerce --version=5.5.3

Установка плагинов из других мест

Каталог плагинов WordPress — не единственное место, где мы можем получить плагины. Мы также можем установить плагин прямо из файловой системы. В большинстве случаев, когда вы покупаете плагин премиум-класса, вы получаете первоначальную поставку в виде zip-файла. WP-CLI с радостью установит этот zip-файл напрямую, без необходимости сначала извлекать пакет:

# Установка плагина из папки Downloads
Установка плагина $ wp ~/Downloads/advanced-custom-fields-pro.zip

Это также работает, если подключаемый модуль, который вы хотите установить, доступен по URL-адресу, возможно, доступному только путем предоставления учетных данных через параметры запроса или на сервере с самозаверяющим сертификатом:

# Получить плагин по URL-адресу
Установка плагина wp http://www.hellfish.media/my-plugin.zip

# ...или даже приватный файл из корзины Amazon:
Установка плагина wp https://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123

# С нашего внутреннего сервера с самоподписанным сертификатом:
Установка плагина wp https://intranet.hellfish.media/my-plugin.zip --insecure

Обновление плагинов с помощью WP-CLI

После того, как у вас установлен плагин, важно обновлять его по соображениям безопасности. Чтобы узнать, есть ли какие-либо плагины для обновления, мы можем запустить команду wp plugin list :

список плагинов wp
+-------------------------------+-----------+------ -----+---------+
| имя | статус | обновить | версия |
+-------------------------------+-----------+------ -----+---------+
| amazon-s3-и-cloudfront | активный | доступно | 2.6.1 |
| привет-долли | активный | доступно | 1.7.1 |
| чудо | необходимо использовать | нет | 1.0 |
+-------------------------------+-----------+------ -----+---------+

В этом случае плагины Hello Dolly и WP Offload Media нуждаются в обновлении. Естественно, для этого есть отдельная подкоманда, которая называется update .

Мы можем либо обновлять их по одному, либо немного полениться и просто обновить все, что нужно обновить за один раз, используя ключ --all . По умолчанию команда update выполняет обновление до последней доступной версии, включая основные обновления версии. Но с помощью ключа --minor мы можем быть немного осторожнее и обновлять только минорные версии. Например, мы можем сказать ему обновиться с 1.2.3 до 1.3.0, но не до 2.0.0. Мы можем даже быть очень осторожными и использовать переключатель --patch , чтобы ограничить обновления только патчами, то есть с 1.2.3 до 1.2.5, но никогда до 1.3.0.

# Аккуратно обновляйте плагины один за другим
Обновление плагина wp wp-offload-media
обновление плагина wp hello-dolly

# Ковбойский подход
обновление плагина wp --all

# Немного разумнее
обновление плагина wp --all --minor

# Очень оборонительный
обновление плагина wp --all --patch

Примечание. Переключатели --minor и --patch предполагают, что подключаемый модуль использует семантическое управление версиями. Далеко не все плагины делают это, поэтому вам нужно будет поискать плагины, которые вы используете, чтобы не получить неприятных сюрпризов. Параметр --dry-run позволяет вам проверить правильность ваших команд:

# Протестируйте обновление одного плагина до патчей
Обновление плагина wp hello-dolly --patch --dry-run

Параметр --exclude=<plugin name> используется для указания того, какие плагины следует исключить из обновления. Включите имена плагинов в виде списка, разделенного запятыми, и WP-CLI обновит все остальные плагины, оставив их в покое:

обновление плагина wp --all --exclude=hello-dolly
Включение режима обслуживания...
Загрузка обновления с https://deliciousbrains.com/my-account/download/7512/?version=2.6.2...
Распаковка обновления...
Установка последней версии...
Удаление старой версии плагина...
Плагин успешно обновлен.
Отключение режима обслуживания...
+--------------------------+---------------+-------- -----+---------+
| имя | старая_версия | новая_версия | статус |
+--------------------------+---------------+-------- -----+---------+
| amazon-s3-и-cloudfront | 2.6.1 | 2.6.2 | Обновлено |
+--------------------------+---------------+-------- -----+---------+

Принудительная переустановка плагина

Большинство плагинов премиум-класса имеют собственную встроенную проверку обновлений, которая также отлично работает с WP-CLI. По моему опыту, любой плагин, который можно обновить одним щелчком мыши через страницы администрирования WordPress, также можно обновить с помощью WP-CLI. Но в некоторых случаях обновления предоставляются через новую версию zip-файла, который необходимо поместить в нужное место на сервере. Вы можете применить такие обновления, принудительно переустановив плагин с помощью переключателя --force :

# Заставить плагин переустановить
установка плагина wp ~/Downloads/my-custom-plugin-v2.zip --force

Включение автоматических обновлений

Начиная с версии 5.5 WordPress может автоматически обновлять плагины. Автоматические обновления должны быть включены для каждого отдельного плагина. WP-CLI не предлагает массовой обработки автоматических обновлений. Это нужно сделать отдельно для каждого плагина с помощью подкоманды auto-updates . Вы можете увидеть, как это работает, с помощью следующих команд:

# Проверьте, включены ли автоматические обновления для плагина
Плагин wp автоматически обновляет статус hello-dolly

# Включить автоматические обновления 
Автообновление плагина wp включает приветственную тележку

# Отключите его снова
Автообновление плагина wp отключает hello-dolly

Деактивация и удаление плагинов

Установка, активация и обновление плагинов являются одними из наиболее распространенных задач, но есть и другие задачи по управлению плагинами, которые WP-CLI может выполнить за нас.

Если вы когда-нибудь пытались выяснить, что вызывает проблемы на вашем веб-сайте WordPress, вам, вероятно, советовали деактивировать все плагины в качестве одного из первых шагов. Это можно сделать с помощью массовой обработки в веб-браузере, но это всегда заставляет меня нервничать. Я предпочитаю делать это через командную строку с --all .

# Деактивировать все плагины сразу
Плагин wp деактивировать --all

# И повторно активировать их
Плагин wp активировать --all

Полное удаление плагина также легко выполняется с помощью WP-CLI. Одно различие между выполнением этого через командную строку и через браузер заключается в том, что WP-CLI позволит вам удалить плагин без предварительного запуска хуков деактивации. Если у вас когда-либо устанавливался плагин, вызывающий сбой WordPress во время деактивации, вы знаете, почему это может быть так полезно:

# Деактивировать и удалить 
Плагин wp деактивировать hello-dolly --uninstall

# Удалить плагин, не дав ему возможности деактивироваться
плагин wp удалить hello-dolly

Существует также подкоманда toggle , связанная с активацией и деактивацией плагинов. Он перевернет или переключит статус активации, чтобы он изменился на противоположный текущему статусу. Вы можете добавить --network для включения или выключения плагина для всей многосайтовой сети.

Контрольные суммы плагинов

WP-CLI имеет возможность сравнивать контрольные суммы ваших установленных плагинов с контрольными суммами того же плагина и версии в каталоге плагинов WordPress. Это очень эффективный способ определить, были ли изменены файлы плагинов в вашей установке WordPress. Если они есть, это явный признак того, что вас взломали.

Контрольные суммы — это специальные компьютерные алгоритмы, которые могут принимать входные данные любого типа и размера и преобразовывать их в короткую строку. Эта строка обычно имеет длину около 20-40 символов, что делает ее пригодной для хранения в базе данных. Эта результирующая строка называется хешем, подписью или, по историческим причинам, контрольной суммой.

Что делает эти алгоритмы уникальными, так это то, что если на входе изменится хотя бы один символ, результат будет совершенно другим. Подайте все файлы плагина в алгоритм контрольной суммы один за другим, и вы получите одну небольшую подпись или контрольную сумму, которая представляет весь плагин.

Каждый раз, когда новая версия плагина публикуется в каталоге плагинов WordPress, контрольная сумма вычисляется и сохраняется для этой конкретной версии. Несколько месяцев спустя, когда вы захотите еще раз убедиться, что вас не взломали, вы можете попросить WP-CLI вычислить контрольную сумму для ваших плагинов и сравнить их с исходными контрольными суммами, которые хранит WordPress. Если на вашей стороне есть добавленные, измененные или отсутствующие файлы, контрольная сумма для плагина будет отличаться от исходной, и WP-CLI будет шуметь по этому поводу.

Подкоманда, которая управляет этой магией проверки хэшей, называется verify-checksums , и она, по сути, аналогична запросу «Мои плагины не изменились с тех пор, как я получил их из каталога плагинов WordPress?»

# Проверить наличие одного плагина
Плагин wp для проверки контрольных сумм hello-dolly
Успех: проверено 1 из 1 плагинов

# Проверить наличие всех плагинов из репозитория
Плагин wp для проверки контрольных сумм --all

Это работает только для плагинов, которые были установлены из официального каталога плагинов WordPress, поэтому ваши премиум-плагины не будут проверяться этой командой. Подкоманда verify verify-checksums также существует для wp core но ее нельзя использовать для проверки тем WordPress.

Команды для сценариев

Пока что команды, которые мы рассмотрели, полезны для всех, кому нужно управлять плагинами WordPress. Последний набор подкоманд wp plugin , который я собираюсь рассмотреть, в первую очередь представляет интерес для разработчиков WordPress, поскольку они в основном предназначены для использования в скриптах Bash.

Сначала нам нужно немного поговорить о кодах выхода Unix. В системе Unix все программы, которые завершают работу, возвращаются с кодом выхода. Стандартная интерпретация состоит в том, что код выхода 0 означает, что программа завершилась нормально, а ненулевой код выхода указывает на то, что произошла ошибка.

Коды ошибок часто используются в сценариях оболочки для использования в операторах if/else и других формах ветвления. Мы не видим код выхода при обычном запуске команды из командной строки, но мы всегда можем найти его, используя $? :

# Запустите что-нибудь, что работает, и получите код выхода
свидание
эхо $?
0

# Запустить что-то, что не работает
лс/несуществующая папка
ls: /idongfdg: Нет такого файла или каталога
эхо $?
1

В WP-CLI у нас есть набор команд, которые в основном предназначены для проверки чего-либо и возврата полезного кода выхода. Команда wp plugin имеет две из этих подкоманд, is-installed и is-active , которые позволяют нам проверить, установлен ли и активирован ли определенный плагин:

# Проверяем, установлен ли hello-dolly (есть)
Плагин wp установлен привет-куколка
эхо $?
0

# Удалить hello-dolly и проверить еще раз
плагин wp удалить hello-dolly
Плагин wp установлен привет-куколка
эхо $?
1

# Проверяем, активирована ли woocommerce
wp плагин активен woocommerce
эхо $?
0

# Деактивировать вукоммерцию
плагин wp деактивировать woocommerce
wp плагин активен woocommerce
эхо $?
1

Используя приведенные выше команды, можно писать сценарии Bash, которые делают разные вещи в зависимости от того, установлен/активирован ли определенный плагин или нет.

Последняя подкоманда, которая, как я подозреваю, в основном предназначена для сценариев, — это path . Эта команда просто возвращает путь к основному файлу PHP плагина и, следовательно, к папке плагина. Мы можем комбинировать это с другими трюками Bash, например, так:

# Показать все файлы в папке плагина woocommerce
ls -al $(имя каталога $(путь плагина wp woocommerce))

Это не очень полезно в повседневной работе с командной строкой, но, безусловно, удобно при написании сценариев, когда вам нужно получить путь к плагину.

Вывод

Как видите, управление плагинами WordPress через командную строку увеличивает вашу скорость и значительно упрощает многие распространенные задачи. Я рассмотрел наиболее распространенные задачи, связанные с управлением вашими плагинами, но я рекомендую вам изучить их самостоятельно. Вскоре вы обнаружите, что мощь WP-CLI выходит далеко за рамки плагинов, позволяя вам делать практически все, что вы можете делать в админке WordPress, но намного быстрее.

У вас есть отличные примеры того, как вы используете команду wp plugin ? Пожалуйста, дайте мне знать в комментариях.