3 июля, 2020
9мин. чтения
Renat
WP-CLI — это инструмент, который дает вам возможность администрировать ваш WordPress через CLI или же интерфейс командной строки. В нем вы сможете выполнять как стандартные функции, вроде установки плагинов, так и команды не поддерживаемые стандартным интерфейсом WordPress. Главным преимуществом использования WP-CLI является время, сэкономленное при установке, настройке и управлении вашим сайтом на WordPress. К примеру, если у вас есть несколько сайтов, вам больше не надо будет заходить на каждый из них для проведения рутинных задач, вы просто можете настроить WP-CLI для их автоматического выполнения.
Перед тем, как вы начнете это руководство, вам понадобится следующее:
На виртуальном хостинге Hostinger WP-CLI уже установлен. Поэтому, все что вам нужно сделать для начала работы с ним, это подключиться к вашему аккаунту через SSH.
Если вы хотите установить WP-CLI на VPS или локальную систему Linux, то следуйте этапам ниже:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Теперь WP-CLI установлен, вы можете начать работу с контентом вашего WordPress через CLI.
WP-CLI — это довольно простой инструмент. Если вы уже знакомы со средой командной строки, научиться работать с ним вам не составит труда. С помощью него у вас появиться возможность управлять вашим блогом через интерфейс командной строки, что часто гораздо быстрее чем поиск нужной функции в панели управления WordPress, а возможность создания скриптов, поможет вам автоматизировать некоторые из команд.
WP-CLI идет вместе с несколькими предустановленными командами. Их список может быть расширен после установки определенных плагинов, которые поддерживаются WP-CLI. Вы можете найти список плагинов для WP-CLI вместе со всем командами здесь. Давайте пройдемся по некоторым из них:
Команда представленная ниже показывает информацию о версии WP-CLI:
wp --info
Примерный результат:
PHP binary: /opt/alt/php70/usr/bin/php PHP version: 7.0.16 php.ini used: /opt/alt/php70/etc/php.ini 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 help
Примерный результат:
DESCRIPTION Manage WordPress through the command-line. SYNOPSIS wp <command> SUBCOMMANDS cache Manage the object cache. cap Manage user capabilities. cli Manage WP-CLI itself. comment Manage comments. core Download, install, update and manage a WordPress install. cron Manage WP-Cron events and schedules. db Perform basic database operations using credentials stored in wp-config.php eval Execute arbitrary PHP code. eval-file Load and execute a PHP file. .....
Для выхода из страницы помощи WP-CLI, нажмите клавишу Q на клавиатуре.
Вы также можете просмотреть страницу помощи о каждой отдельной команде. К примеру, если вы хотите больше узнать о команде comment, впишите:
wp help comment
Примерный результат:
NAME wp comment DESCRIPTION Manage comments. SYNOPSIS wp comment <command> SUBCOMMANDS approve Approve a comment. count Count comments, on whole blog or on a given post. create Create a new comment. delete Delete a comment. exists Verify whether a comment exists. generate Generate some number of new dummy comments. .....
Как вы видите из примера, каждая команда имеет свой список подкоманд. К примеру, для получения информации о количестве комментариев мы можем использовать следующую команду:
wp comment count
Можно пойти дальше и открыть страницу помощи для подкоманды этой подкоманды:
wp help comment count
Примерный результат:
NAME wp comment count DESCRIPTION Count comments, on whole blog or on a given post. SYNOPSIS wp comment count [<post-id>] OPTIONS [<post-id>] The ID of the post to count comments in. .....
Если это ваш первый опыт работы с WP-CLI, то эта шпаргалка окажет вам неоценимую помощь. Она имеет список всех официальных команд для командной строки, вместе с их описанием и глобальными параметрами WP-CLI.
Вы можете осуществить процесс установки WordPress через командную строку. Однако вам необходимо создать базу данных MySQL перед началом установки. В Hostinger. это можно сделать через панель управления в разделе Базы данных → Базы Данных MySQL.
Если вы используете WP-CLI на VPS или локальной системе, следуйте данным этапам для создания новый базы данных MySQL:
mysql -u вашеимяпользователя -p
create database wordpress;
grant all on wordpress.* to 'имя пользователя' identified by 'вашпароль';
Когда база данных MySQL будет готова, вы сможете продолжить установку WordPress. Во-первых, вам необходимо скачать последнюю версию WordPress. Сделать это вы можете выполнив эту команду:
wp core download
Примерный результат:
Downloading WordPress 4.7.3 (en_US)... md5 hash verified: 044729d30b720809f19e14ece49e119b Success: WordPress downloaded.
ВАЖНО! Перед выполнением данной команды убедитесь, что вы находитесь в правильном каталоге. Обычно, все файлы сайта находятся в каталоге public_html. Вы можете узнать каталог, в котором вы находитесь в данный момент выполнив команду pwd.
Здесь мы используем команду wp core для добавления данных в базу данных MySQL WordPress:
wp core config --dbname=wordpress --dbuser=user --dbpass=password --dbhost=localhost --dbprefix=wp_
С помощью команды wp core config можно легко ввести все необходимые данные. Если данные введены корректно, WP-CLI создаст файл wp-config.php:
Примерный результат:
Success: Generated 'wp-config.php' file.
Теперь посетите ваш сайт на WordPress снова. Вы заметите, что теперь установщик требует другой набор данных.
Снова используем команду wp core для указания данных и завершения установки:
wp core install --url="вашдомен.ru" --title="РУКОВОДСТВА HOSTINGER" --admin_user="имяпользователя_администратора" --admin_password="пароль_администратора" --admin_email="мойemail@email.ru"
Примерный результат:
Success: WordPress installed successfully.
В этом разделе вы узнаете, как использовать интерфейс командой строки для установки тем WordPress. Давайте начнем с отображения списка установленных тем:
wp theme list
Примерный результат:
+-----------------+----------+--------+---------+ | name | status | update | version | +-----------------+----------+--------+---------+ | twentyfifteen | inactive | none | 1.7 | | twentyseventeen | active | none | 1.1 | | twentysixteen | inactive | none | 1.3 | +-----------------+----------+--------+---------+
Из столбца статус мы можем узнать, что twentyseventeen является активной темой. Давайте изменим активную тему на twentyfifteen:
wp theme activate twentyfifteen
Примерный результат:
Success: Switched to 'Twenty Fifteen' theme.
Вы даже можете использовать интерфейс командой строки для поиска новых тем из официального каталога WordPress. Давайте поищем темы с поддержкой bootstrap:
wp theme search bootstrap
Примерный результат:
Success: Showing 10 of 292 themes. +---------------------+---------------------+--------+ | name | slug | rating | +---------------------+---------------------+--------+ | edsBootstrap | edsbootstrap | 100 | | Bootstrap Basic4 | bootstrap-basic4 | 0 | | ultrabootstrap | ultrabootstrap | 100 | | Bootstrap Four | bootstrap-four | 80 | | Simple Bootstrap | simple-bootstrap | 60 | | Bootstrap Canvas WP | bootstrap-canvas-wp | 92 | | Flat Bootstrap | flat-bootstrap | 100 | | Bootstrap Basic | bootstrap-basic | 100 | | DevDmBootstrap3 | devdmbootstrap3 | 100 | | Arouse | arouse | 0 | +---------------------+---------------------+--------+
Название темы многого нам не расскажет, но ultrabootstrap звучит круто и имеет рейтинг 100. Для установки и активации темы используйте эту команду:
wp theme install ultrabootstrap --activate
Примерный результат:
Installing ultrabootstrap (1.1.5) Downloading install package from https://downloads.wordpress.org/theme/ultrabootstrap.1.1.5.zip... Unpacking the package... Installing the theme... Theme installed successfully. Activating 'ultrabootstrap'... Success: Switched to 'ultrabootstrap' theme. Success: Installed 1 of 1 themes.
Вот как выглядит наш сайт после установки новой темы:
Вы также можете указать путь до архива с темой WordPress. Это команда также работает и с URL.
Как и темы, плагины могут быть установлены через интерфейс командной строки. Для отображения списка уже установленных плагинов введите:
wp plugins list
Примерный результат:
+---------+----------+--------+---------+ | name | status | update | version | +---------+----------+--------+---------+ | akismet | inactive | none | 3.3 | | hello | inactive | none | 1.6 | +---------+----------+--------+---------+
У нас еще нет установленных плагинов. Давайте установим контактную форму для нашего блога WordPress.
Во-первых, найдите сам плагин contact form 7:
wp plugin search "contact form 7"
Примерный результат:
Success: Showing 10 of 2514 plugins. +--------------------------------------+---------------------------+--------+ | name | slug | rating | +--------------------------------------+---------------------------+--------+ | Contact Form 7 | contact-form-7 | 92 | | Contact Bank - Contact Forms Builder | contact-bank | 86 | | Contact Form | contact-forms-builder | 90 | | Contact Form | contact-form-ready | 96 | | Contact Form | contact-form-add | 76 | | Contact Form | powr-contact-form | 100 | | Contact Form | better-contact-form | 100 | | Contact Form | contact-form-master | 96 | | Contact Form | contact-form-maker | 88 | | Contact Form by Supsystic | contact-form-by-supsystic | 92 | +--------------------------------------+---------------------------+--------+
Contact Form 7 первый в списке. Мы хотим установить и активировать его, так как это отличный плагин для создания легких контактных форм:
wp plugin install contact-form-7 --activate
Примерный результат:
Installing Contact Form 7 (4.7) Downloading install package from https://downloads.wordpress.org/plugin/contact-form-7.4.7.zip... Unpacking the package... Installing the plugin... Plugin installed successfully. Activating 'contact-form-7'... Plugin 'contact-form-7' activated. Success: Installed 1 of 1 plugins.
Также как и темы, плагины могут быть установлены из zip архива или URL.
Для удаления плагина измените install на delete:
wp plugin delete contact-form-7
Примерный результат:
Deleted 'contact-form-7' plugin. Success: Deleted 1 of 1 plugins.
Обновление WordPress с интерфейсом командой строки проходит в два этапа, так как вам необходимо обновить файлы WordPress, а затем базу данных.
Начните с обновления корневых файлов WordPress:
wp core update
Примерный результат:
Updating to version 4.7.3 (en_US)... Downloading update from https://downloads.wordpress.org/release/wordpress-4.7.3-new-bundled.zip... Unpacking the update... Cleaning up files... Success: WordPress updated successfully.
Запустите команду ниже для проверки и если необходимо, для обновления базы данных до необходимой версии:
wp core update-db
Примерный результат:
Success: WordPress database already at latest db version 38590.
Для обновления темы или плагина WordPress через WP-CLI смените core на theme или plugin. Параметр –all используется для обновления всех установленных тем/плагинов, но вы можете изменить его на определенное название плагина или темы:
Для тем:
wp theme update --all
Для плагинов:
wp plugin update --all
WP-CLI предоставляет несколько путей для управления вашим контентом через интерфейс командной строки. Публиковать и писать записи через терминал не очень удобный процесс, но в целях обучения давайте посмотрим, как создавать и управлять контентом через WP-CLI.
Для просмотра списка всех записей используйте:
wp post list
Примерный результат:
+----+--------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+--------------+-------------+---------------------+-------------+ | 1 | Hello world! | hello-world | 2017-03-15 11:11:00 | publish | +----+--------------+-------------+---------------------+-------------+
Как вы видите у нас есть только одна запись — Hello world!. ID этой записи 1. Вы можете удалить ее с помощью команды:
wp post delete 1
Примерный результат:
Success: Trashed post 1.
Для создания новой записи используйте:
wp post create --post_status=publish --post_title="Новая запись WP-CLI" --edit
Эта команда откроет текстовый редактор vim. Введите содержимое и выйдите из vim нажав клавишу ESC, введя :wq и нажав ENTER.
Также возможно создать новую запись и импортировать содержимое записи из .txt:
wp post create ./post.txt --post_title='Sample Post' --post_status=publish
Отдельно от создания записей, в WP-CLI вы просто можете их cгенерировать. Эта функция полезна если вы хотите проверить работу вашего сайта при большом количестве контента. Код для генерации 50 записей:
wp post generate --count=50
С помощью WP-CLI вы можете автоматизировать процесс импорта изображений. К примеру, мы хотим импортировать все изображения из папки изображения_для_сайта. Мы может достичь этой цели использовав эту одну команду:
wp media import изображения_для_сайта/*
Интерфейс командной строки WP позволяет легко проводить импорт или экспорт содержимого с одного сайта WordPress на другой. Данная команда экспортирует записи, авторов, комментарии и вложения в XML файл:
wp export
Примерный результат:
Writing to file /home/u694443746/public_html/hostingertutorials.wordpress.2017-03-16.000.xml Success: All done with export.
К примеру, мы хотим импортировать этот XML файл на другой WordPress. Во-первых, нам надо установить плагин wp-importer:
wp plugin install wordpress-importer --activate
После завершения установки, мы можем продолжить процесс импорта. Создайте нового автора с использованием параметра –authors:
wp import hostingertutorials.wordpress.2017-03-16.000.xml --authors=create
Примерный результат:
<p>All done. <a href="http://hostinger-tutorials.com/wp-admin/">Have fun!</a></p><p>Remember to update the passwords and roles of imported users.</p> Success: Finished importing from 'hostingertutorials.wordpress.2017-03-16.000.xml' file.
Вы можете запустить обычный SQL запрос через интерфейс командной строки с помощью команды wp db query. К примеру, чтобы увидеть список всех зарегистрированных пользователей используйте:
wp db query "SELECT user_login,ID FROM wp_users;"
Примерный результат:
+------------+----+ | user_login | ID | +------------+----+ | user | 1 | +------------+----+
Вы можете запустить другие полезные операции, например экспорт. Это операция генерирует SQL файл дампа вашей базы данных WordPress:
wp db export
Примерный результат:
Success: Exported to 'u694443746_dapyz-a0d3f2a.sql'.
Для импорта SQL файла в базу данных WordPress:
wp db import file.sql
Примерный результат:
Success: Imported from 'file.sql'.
Если вы когда-нибудь занимались перемещением WordPress из локального сервера на обычный хостинг, вы знаете как полезна порой бывает функция поиска и замены. Конечно, это может быть сделано с использованием SQL запроса или плагина, но в интерфейсе командной строки WP поиск и замена может быть выполнена с помощью одной команды. К примеру, мы изменили наше доменное имя hostinger-tutorials.ru на hostinger-tutorials.org и нам небходимо обновить все ссылки в нашей базе данных WordPress.
Перед выполнением настоящей команды всегда рекомендуется сделать ‘dry run’. Это покажет количество изменений которые будут сделаны:
wp search-replace --dry-run 'hostinger-tutorials.ru' 'hostinger-tutorials.org'
Примерный результат:
Success: 1008 replacements to be made.
Теперь, для осуществления настоящего поиска и замены в WP-CLI, удалите параметр –dry-run из команды:
wp search-replace 'hostinger-tutorials.ru' 'hostinger-tutorials.org'
Примерный результат:
Success: Made 1008 replacements.
Помимо этих базовых команд функционал WP-CLI может быть расширен с помощью сторонних плагинов. Работа с WordPress становится гораздо проще, когда вам не надо переходить из раздела в раздел панели управления для поиска определенной функции. Если же у вас несколько сайтов на WordPress, вы можете серьезно сэкономить время на повседневных задачах. Это руководство дает вам основу, которая нужна для работы с основными задачами и функциями CLI для WordPress.
10 января 2020
Здравствуйте А есть вариант импорта не по одной статье из файлов? "wp post create ./post.txt --post_title='Sample Post' --post_status=publish" Что-то не нашел в сети информации.
Оставьте ответ