Статьи

Что такое WP-CLI? Руководство для начинающих

WP-CLI существует уже довольно давно (около 2011 года) и неуклонно набирает обороты в сообществе разработчиков WordPress. Но что именно, и как вы можете использовать его в вашем рабочем процессе WordPress?

Идея WP-CLI заключается в том, что он позволяет вам взаимодействовать с сайтами WordPress и управлять ими через интерфейс командной строки. Согласно официальной документации, это альтернатива командной строке традиционному пользовательскому интерфейсу администратора WordPress.

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

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

Прежде чем идти дальше, я должен сделать признание. Как я уже говорил, я никогда раньше не использовал WP-CLI! Я знал об этом довольно давно и очень хотел испытать его, но так и не смог его установить и использовать. До сих пор это …

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

Вы готовы начать? Хорошо, тогда пошли!

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

Для начала нам нужно получить последнюю версию WP-CLI. Рекомендуемый способ сделать это — загрузить WP-CLI в виде файла Phar через командную строку. Это всего лишь архивный файл PHP, содержащий все файлы PHP, необходимые для работы WP-CLI, все они упакованы в один удобный файл, готовый для загрузки.

Откройте окно терминала и введите следующее:

1
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Это загрузит файл WP-CLI Phar на ваш компьютер. Давайте проверим все в порядке, проверив архив WP-CLI.

1
php wp-cli.phar —info

Вы должны увидеть вывод, похожий на следующий:

1
2
3
4
5
6
7
8
PHP binary: /usr/bin/php
PHP version: 5.6.30
php.ini used:
WP-CLI root dir: phar://wp-cli.phar
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.1.0

Чтобы сделать использование WP-CLI более удобным, мы хотим иметь возможность запускать его из любого места и с помощью более короткой команды, такой как wp вместо того, чтобы каждый раз вводить wp-cli.phar .

Мы можем сделать это с помощью следующих двух команд:

1
2
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Теперь попробуйте запустить wp --info в окне терминала (указывая на любой каталог). Если вы видите тот же вывод, что и раньше, когда php wp-cli.phar --info значит, вы в деле. WP-CLI настроен и готов к использованию!

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

Установка в Windows немного сложнее, так как PHP не доступен из командной строки по умолчанию. Вы можете установить PHP вручную, но самый простой способ — использовать локальный сервер разработки, такой как MAMP, потому что PHP автоматически устанавливается как часть общего пакета.

Как только PHP станет доступным в вашей системе, вам нужно будет найти путь к исполняемому файлу PHP и сделать его доступным глобально (это подробно описано в руководстве по PHP ).

Если PHP установлен и доступен из любого каталога, загрузите файл wp-cli.phar вручную и сохраните его в папке, такой как c:\wp-cli . Чтобы можно было запустить WP-CLI с помощью команды wp как мы это делали в macOS, создайте командный файл с именем wp.bat в той же папке, в которой вы сохранили архивный файл wp-cli.phar .

Добавьте это в командный файл:

1
2
@ECHO OFF
php «c:/wp-cli/wp-cli.phar» %*

Наконец, добавьте c:\wp-cli к вашему глобальному пути:

1
setx path «%path%;c:\wp-cli»

WP-CLI теперь должен быть доступен из любого окна командной строки.

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

Установка WP-CLI с помощью DesktopServer

После активации вы можете получить доступ к WP-CLI через основной список сайтов DesktopServer или панель инструментов WordPress.

Доступ к WP-CLI через веб-браузер
Доступ к WP-CLI через WordPress

Если у вас есть доступ к DesktopServer, то я определенно рекомендую установить WP-CLI таким образом, поскольку это самый простой способ установки. Я использовал DesktopServer последние пару лет, поэтому мне повезло, что установка WP-CLI была для меня легкой задачей.

Это руководство предназначено для начинающих, которые не знакомы с WP-CLI и используют локальную установку WordPress. Тем не менее, если вы хотите выполнять команды на удаленном сервере (то есть на живом сайте WordPress), вы все равно можете следовать, если у вас установлен WP-CLI.

Вам нужно будет иметь возможность подключиться к серверу через SSH-клиент и иметь под рукой данные для входа в свою учетную запись хостинга. После подключения и входа в систему вы сможете использовать все команды WP-CLI из этого руководства.

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

Надеюсь, к настоящему времени у вас будет установлен WP-CLI, и в этом случае вы можете немного расслабиться, выполнив самое сложное!

Откройте окно командной строки в корневом каталоге веб-сайта WordPress, с которым вы хотите работать, что должно выглядеть примерно так, как показано на скриншоте ниже.

Подготовка к использованию WP-CLI

Одним из преимуществ использования DesktopServer является то, что он автоматически открывает окно командной строки, указывающее на правильный корневой каталог сайта WordPress. Я подумал, что это было приятно, особенно если вы работаете на нескольких сайтах.

Давайте теперь протестируем нашу установку WP-CLI. Это наша первая команда …

1
wp —info
1
2
3
4
5
6
7
8
PHP binary: C:\xampplite\php\php.exe
PHP version: 5.5.24
php.ini used: C:\xampplite\php\php.ini
WP-CLI root dir: C:\xampplite\ds-plugins\ds-cli\vendor\wp-cli\wp-cli
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.0.0

Итак, чтобы получить доступ к WP-CLI, введите wp а затем команду и / или параметр. Если wp , вы просто получите длинный список доступных команд и параметров (которые я здесь не буду показывать, но попробуйте сами).

Наша первая команда содержала параметр. Разница в том, что параметру предшествуют два дефиса. Ключ к WP-CLI заключается в том, что почти все команды содержат подкоманды (и параметры). Эта иерархия очень хорошо организована, ее легко понять и следовать.

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

Давайте рассмотрим несколько основных команд WP-CLI и их вывод, чтобы понять, как это работает.

Сначала давайте получим текущую версию WP-CLI, которую мы используем.

wp --version

1
WP-CLI 1.0.0

Мы можем запустить аналогичную команду, чтобы найти текущую версию WordPress.

1
wp core version
1
4.7.3

Как насчет списка всех тем, установленных в настоящее время?

1
wp theme list
1
2
3
4
5
6
7
8
+——————+———-+———+———+
|
+——————+———-+———+———+
|
|
|
|
+——————+———-+———+———+

Обратите внимание, как мы получаем полезную информацию, такую ​​как статус темы и ее версия, а также если доступно обновление.

Мы можем сделать то же самое для плагинов.

1
wp plugin list
1
2
3
4
5
6
7
+————-+———-+———+————+
|
+————-+———-+———+————+
|
|
|
+————-+———-+———+————+

Мы можем использовать параметры для уточнения списка плагинов.

1
wp plugin list —fields=name,version
1
2
3
4
5
6
7
+————-+————+
|
+————-+————+
|
|
|
+————-+————+

Здесь у нас есть параметр, который требует указания одного или нескольких значений. Это очень часто, и вы очень быстро привыкнете к этому. В этом случае мы перечислили только те поля, которые мы хотели показать (имя, версия).

Мы также можем показывать только плагины, которые соответствуют определенным критериям.

1
wp plugin list —status=inactive
1
2
3
4
5
6
7
+————-+———-+———+————+
|
+————-+———-+———+————+
|
|
|
+————-+———-+———+————+

Это просто выводит все плагины снова, так как они все в настоящее время неактивны. Мы вскоре изменим это, когда начнем вводить команды для управления плагинами (и темами).

Возможно, вы заметили в приведенных выше командах, что используются два командных слова ( plugin и list ). Если вы wp plugin по себе, он не будет запускать команду, а перечислит все wp plugin . Попробуй сам.

1
wp plugin
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
usage: wp plugin activate [<plugin>…] [—all] [—network]
   or: wp plugin deactivate [<plugin>…] [—uninstall] [—all] [—network]
   or: wp plugin delete <plugin>…
   or: wp plugin get <plugin> [—field=<field>] [—fields=<fields>] [—format=<format>]
   or: wp plugin install <plugin|zip|url>… [—version=<version>] [—force] [—activate] [—activate-network]
   or: wp plugin is-installed <plugin>
   or: wp plugin list [—<field>=<value>] [—field=<field>] [—fields=<fields>] [—format=<format>]
   or: wp plugin path [<plugin>] [—dir]
   or: wp plugin search <search> [—page=<page>] [—per-page=<per-page>] [—field=<field>] [—fields=<fields>] [ —format=<format>]
   or: wp plugin status [<plugin>]
   or: wp plugin toggle <plugin>… [—network]
   or: wp plugin uninstall <plugin>… [—deactivate] [—skip-delete]
   or: wp plugin update [<plugin>…] [—all] [—format=<format>] [—version=<version>] [—dry-run]
 
See ‘wp help plugin <command>’ for more information on a specific command.

Таким образом, команда list — это всего лишь одна из нескольких подкоманд, доступных для команды plugin «parent». Многие другие команды работают аналогичным образом.

Введите wp core и wp theme чтобы увидеть список их подкоманд.

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

1
wp plugin list —fields=name,version —update=available

По умолчанию вы получаете результаты команды WP-CLI, выведенные в табличном формате, но вместо этого это можно легко изменить на JSON или запятую (CSV), используя параметр --format .

1
wp plugin list —format=json
1
[{«name»:»akismet»,»status»:»inactive»,»update»:»none»,»version»:»3.3″},{«name»:»hello»,»status»:»inactive»,»update»:»none»,»version»:»1.6″},{«name»:»theme-check»,»status»:»inactive»,»update»:»none»,»version»:»20160523.1″}]
1
wp plugin list —format=csv
1
2
3
4
name,status,update,version
akismet,inactive,none,3.3
hello,inactive,none,1.6
theme-check,inactive,none,20160523.1

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

Реальная сила WP-CLI становится понятной, когда вы начинаете манипулировать WordPress через командную строку. В этом разделе мы увидим, насколько просто установить / удалить, а также активировать / деактивировать плагины и темы через WP-CLI.

Для плагинов и тем, размещенных в репозитории WordPress, просто введите имя после команды install следующим образом:

1
wp plugin install jetpack
1
2
3
4
5
6
Installing Jetpack by WordPress.com (4.8.2)
Downloading install package from https://downloads.wordpress.org/plugin/jetpack.4.8.2.zip…
Unpacking the package…
Installing the plugin…
Plugin installed successfully.
Success: Installed 1 of 1 plugins.

Давайте снова выведем список плагинов, чтобы убедиться, что Jetpack был установлен, но на этот раз просто перечислим название плагина.

1
wp list plugin —fields=name
1
2
3
4
5
6
7
8
+————-+
|
+————-+
|
|
|
|
+————-+

Мы можем установить темы аналогичным образом:

1
wp theme install twentyeleven
1
2
3
4
5
6
Installing Twenty Eleven (2.5)
Downloading install package from https://downloads.wordpress.org/theme/twentyeleven.2.5.zip…
Unpacking the package…
Installing the theme…
Theme installed successfully.
Success: Installed 1 of 1 themes.

И давайте просто проверим, правильно ли была установлена ​​тема Twenty Eleven:

1
wp theme list
1
2
3
4
5
6
7
8
9
+——————+———-+———+———+
|
+——————+———-+———+———+
|
|
|
|
|
+——————+———-+———+———+

Для плагинов и тем, размещенных в других местах, просто введите полный путь к zip-файлу. Название плагина / темы на самом деле является слагом, который удобно запомнить, если имя вашего плагина / темы состоит из более чем одного слова.

Например, чтобы установить плагин Theme Check из репозитория WordPress:

1
wp plugin install theme-check

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

1
wp plugin activate jetpack

Или вы можете установить и активировать плагин все в одной строке.

1
wp plugin install jetpack —activate

Чтобы удалить плагин, используйте команду delete .

1
wp plugin delete jetpack

Обратите внимание, что вам не нужно было деактивировать плагин, прежде чем мы удалили его, как вы должны это сделать в админке WordPress. Процесс установки / активации / удаления одинаков для тем.

Существуют различные команды WP-CLI для управления сообщениями любого типа, включая способ массового создания сообщений.

Во-первых, давайте выведем текущий список сообщений.

1
wp post list
1
2
3
4
5
6
7
8
+—-+———+———+———+———+
|
|
+—-+———+———+———+———+
|
|
|
+—-+———+———+———+———+

Теперь давайте сгенерируем несколько постов.

1
wp post generate —count=5
1
Generating posts 100% [=============] 0:03 / 0:02

Давайте снова посмотрим на обновленный список сообщений.

1
wp post list
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
+—-+———+———+———+———+
|
|
+—-+———+———+———+———+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+—-+———+———+———+———+

Как видите, было создано пять новых сообщений, каждое с общим названием и без содержания сообщения. Мы можем генерировать любое количество постов и для любого типа поста.

1
wp post generate —post_type=page —count=3
1
Generating posts 100% [=============] 0:02 / 0:03

Это создает три новые страницы с общими названиями и без содержания страницы. Я не слишком уверен в том, насколько полезным является массовое создание постов. Тем не менее, это может быть довольно полезно для тестирования.

1
wp post list —post_type=page
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
+—-+———+———+———+———+
|
|
+—-+———+———+———+———+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+—-+———+———+———+———+

Если мы хотим создавать отдельные сообщения, мы имеем полный контроль над содержимым сообщений. Давайте создадим один пост с определенным заголовком и примером содержания.

1
wp post create —post_title=’Just a Post’ —post_content=’I wandered lonely as a cloud.’
1
Success: Created post 45.

Это создает сообщение с определенным названием и содержанием. По умолчанию сообщения будут создаваться с черновым состоянием, поэтому, если мы хотим, чтобы они публиковались сразу, нам нужно установить параметр post_status для publish .

Создать страницу с контентом так же просто — просто установите для параметра post_type значение page (по умолчанию это значение post).

1
wp post create —post_type=page —post_title=’Welcome to a New Dawn’ —post_content=’Read on for some amazing insights.’

Мы также можем обновить существующие сообщения с помощью команды update .

1
wp post update 45 —post_content=’I just updated the post content via the WP-CLI.’
1
Success: Updated post 45.

Убедитесь, что идентификатор сообщения правильный; в противном случае вы получите Warning: Invalid post ID сообщения об ошибке. И снова, вы можете обновить любой тип сообщения, а не только сообщения!

Как и следовало ожидать, вы также можете удалять сообщения через WP-CLI.

1
wp post delete 45
1
Success: Trashed post 45.

Это отправит сообщение в корзину. Если вы хотите обойти это и просто навсегда удалить сообщение, добавьте параметр --force .

1
wp post delete 45 —force

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

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

Управление комментариями очень похоже на сообщения. Чтобы увидеть все комментарии на вашем сайте, используйте эту команду:

1
wp comment list
1
2
3
4
5
+————+——————+———————+——————+————————+————————-+
|
+————+——————+———————+——————+————————+————————-+
|
+————+——————+———————+——————+————————+————————-+

Будьте осторожны — это может занять некоторое время, если у вас много комментариев на вашем сайте!

Чтобы создать комментарий, используйте команду create мы теперь знакомы.

1
wp comment create —comment_post_ID=1 —comment_content=’Just adding my 2 cents worth!’
1
Success: Created comment 24.
1
wp comment list
1
2
3
4
5
6
+————+——————+———————+——————+————————+————————-+
|
+————+——————+———————+——————+————————+————————-+
|
|
+————+——————+———————+——————+————————+————————-+

Обратите внимание, что для создания комментария нам нужно было указать идентификатор существующей записи, а также содержание комментария.

Как и в случае с сообщениями, можно легко создавать массовые комментарии.

1
wp comment generate —count=3 —post_id=1
1
Generating comments 100% [==========] 0:02 / 0:03
1
wp comment list
1
2
3
4
5
6
7
8
9
+————+——————+———————+——————+————————+————————-+
|
+————+——————+———————+——————+————————+————————-+
|
|
|
|
|
+————+——————+———————+——————+————————+————————-+

Обязательно укажите параметр count если вы не хотите, чтобы генерировалось 100 фиктивных комментариев, так как 100 — это значение по умолчанию!

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

1
wp comment delete 26 —force
1
Success: Deleted comment 26.

Помните, однако, что идентификатор здесь — это идентификатор комментария, а не идентификатор сообщения.

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

Мы только что коснулись того, что вы можете сделать с помощью WP-CLI. Но, надеюсь, теперь у вас будет достаточно уверенности, чтобы глубже вникнуть в WP-CLI и поэкспериментировать с более продвинутыми командами.

Мы узнали, что такое WP-CLI и насколько он может быть полезен в вашей повседневной разработке WordPress. Несмотря на то, что команды, которые мы рассмотрели, были довольно простыми, они все равно были довольно полезны!

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

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

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

Это очень весело и полезно. Если у вас есть доступ к DesktopServer, то обязательно используйте его для установки WP-CLI — это действительно просто.

Наконец, если вы заинтересованы в дальнейшей разработке WordPress, не забудьте ознакомиться с другим материалом WordPress, который у нас есть здесь, на Envato Tuts +.

Вы уже используете WP-CLI или впервые экспериментировали с ним? Если да, то как вы пожили? Я хотел бы услышать ваши комментарии!