WP-CLI

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

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

Этот инструмент очень удобен, потому что:

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

Что же, вот и пришло время с этим разобраться!

Установка WP-CLI на Mac OS или Linux

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

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

Если с версией PHP всё ок, то нам нужно запустить команду.

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

Или

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

На данном этапе команды WP-CLI у меня заработали, но не все. Запускал я их кстати в терминале внутри папки WordPress-темы, с которой работал. Например версия WordPress выводилась при помощи wp core version, однако список плагинов wp plugin list выдавал ошибку Error: No such file or directory. Для того, чтобы её исправить, пришлось выполнить последовательность шагов.

Всё заработало.

Использование WP-CLI на хостинге

В этом уроке я в качестве примера буду использовать хостинг Beget. На нём и на многих хостингах утилита WP-CLI уже предустановлена и это круто. Иногда, в зависимости от хостинга или сервера, шаги могут немного отключаться, но принцип в любом случае останется тот же. Я продолжаю использовать обычный терминал на Mac OS.

Также убедитесь, что у вас стоит версия WordPress 3.7+ и PHP 5.6+

1. Подключение к серверу по SSH

Прежде всего нужно убедиться, что подключение по SSH включено в панели хостинга.

Дальше можно зайти в терминал и ввести команду для подключения ssh пользователь@хост. Если всё ок, то в терминале вас попросят ввести пароль и будет выведено что-то вроде этого:

2. Переход в директорию с установкой WordPress

Если вы прямо сейчас будете пытаться использовать команды WP-CLI, например введёте wp core version, то скорее всего столкнётесь с ошибкой: Error: This does not seem to be a WordPress installation.

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

Если у вас нет представления, что делать сейчас, то самым первым шагом наверное будет неплохо понять, в какой директории на сервере мы вообще находимся. Для этого можно ввести команду pwd (print working directory).

Теперь наша задача выбрать какой-либо сайт на аккаунте и переключить директорию на него командой cd (change directory). Пишем полный путь к установке WordPress. Пример ниже – опять-таки для хостинга beget, для других может отличаться.

cd /home/a/логин/сайт/public_html

3. Запуск WP-CLI команд

Теперь, когда мы находимся в директории с установкой WordPress, то мы можем узнать версию движка к примеру командой wp core version.

Команды WP-CLI

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

Полный список команд и описание их параметров вы можете найти в официальной документации, однако есть и небольшой лайфхак, вы можете ввести лишь первую часть команды, например wp core и в терминале выведется полный список её команд и параметрво.

Примеры

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

Обновление WordPress и плагинов через WP-CLI

У меня есть несколько знакомых, у которых есть клиенты, которые платят им за поддержку сайта, причём на сайте ничего особо делать не приходится – нужно лишь своевременно обновлять плагины и темы. И вроде бы у кого-то было чуть больше 20-и подобных клиентов.

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

Результат выполнения обоих команд на скриншоте:

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

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

Ну и конечно же можно вывести список всех плагинов командой wp plugin list.

Смена пароля пользователя

У меня уже был пост про 3 способа смены пароля пользователя, так вот, видимо это 4-й.

$ wp user update USERNAME --user_pass=PASSWORD

Создание нового пользователя

wp user create mishatest no-reply@misha.agency --role=author

Генерация рандомного контента

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

Давайте для начала взглянем на команду generate и на несколько примеров:

А как вам такой пример – сгенерируем 10 Страниц, а для их содержимое будем использовать рыбный текст Lorem Ipsum.

$ curl http://loripsum.net/api/5 | wp post generate --post_content --count=10 --post_type=page

Экспорт базы данных

$ wp db export wordpress.sql

Поиск и замена в базе данных

Также утилите WP-CLI позволяет производить поиск и замену определённых строк в базе данных. Например это может быть удобно при смене домена или переезде на HTTPS.

Не забывайте быть осторожными с этой командой плюс лишняя резервная копия базы данных не повредит.

wp search-replace 'https://misha.blog' 'https://misha.agency'

Ну кстати говоря, не забывайте протестировать свою команду с ключом --dry-run – в этом случае утилита также произведёт поиск по базе данных и выведет результаты, но не будет производить замену.

wp search-replace 'https://misha.blog' 'https://misha.agency' --dry-run

Получение или обновление опций в базе данных

К примеру можем получить админский email:

$ wp option get admin_email

И изменить его на другой:

$ wp option update admin_email "no-reply@misha.agency"

Хотя по сути то же самое можно сделать при помощи интерактивной консоли и функций get_option() и update_option().

Использование интерактивной консоли

Вот это вообще классная тема, супер-полезная при отладке сайта.

Пример:

$ wp shell
wp> get_the_title( 27789 );
=> string(17) "О команде"

Для выхода достаточно напечатать exit; или нажать комбинацию Ctrl + C.

Очистка транзитного кэша

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

wp transient delete --all
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии