Использование WP-CLI для управления WordPress сайтом через командную строку
WordPress – популярная система управления контентом, используемая миллионами веб-сайтов. С ее помощью можно легко структурировать, обслуживать и создавать контент в сети, взаимодействуя с посетителями и участниками.
Несмотря на то что большинство людей полюбили систему WordPress за ее удобный графический интерфейс, есть определенные преимущества и в управлении CMS через командную строку. Инструмент, который называется wp-cli, несет в себе именно такую функциональность.
Это – очень удобный вспомогательный инструмент, который позволяет вам управлять всеми аспектами вашего сайта, начиная с конфигурационных файлов и базой данных и заканчивая постингом, управлением темами, загрузкой медиа и проверкой комментариев.
В данном руководстве мы будем использовать интерфейс wp-cli для управления сборкой WordPress.
Как установить wp-cli
В данном руководстве мы исходим из предположения, что вы уже имеете VPS с WordPress.
Подключаемся через SSH к серверу в качестве root-пользователя:
ssh root@server_ip_address
Вы должны оказаться в домашней директории root-пользователя.
Первое, что нам понадобится сделать – это установить git. Данная система контроля версий используется во время установки wp-cli:
apt-get update apt-get install git
Теперь мы можем взять инсталлятор и запустить его с помощью следующей команды:
curl https://raw.githubusercontent.com/wp-cli/wp-cli.github.com/master/installer.sh | bash
Выполнение данной команды приведет к установке нескольких инструментов, которые требуются для корректной работы программы.
Теперь нам нужно создать файл .bash_profile для нашего root-пользователя и добавить в него путь к исполнимой программе wp-cli и скрипту автозаполнения:
nano ~/.bash_profile
В данный файл поместим следующие строки:
export PATH=/root/.wp-cli/bin:$PATH source $HOME/.wp-cli/vendor/wp-cli/wp-cli/utils/wp-completion.bash
Сохраняем файл и закрываем его.
Теперь мы можем повторно считать файл в нашей среде, чтобы применить наши изменения:
source ~/.bash_profile
Мы получили установленный интерфейс и можем начать использовать его.
Переходим к директории с WordPress:
cd /home/wordpress/public_html
Если вы работаете с новым экземпляром VPS, то в таком случае у вас даже не задана базовая конфигурация. Если же вы уже прошли процесс инициализации сайта, то в таком случае вы можете пропустить этот шаг.
Если вы введете wp – команду для взаимодействия с wp-cli интерфейсом, то вы получите следующее сообщение:
wp Error: The site you have requested is not installed. Run `wp core install`.
Вы можете инициализировать сайт, введя ваш IP-адрес или доменное имя в браузере и заполнив форму, которая будет иметь следующий вид:
Однако, поскольку данное руководство о том, как использовать wp-cli, мы зададим всю эту информацию с помощью отдельной команды. Сделаем мы это в процессе базовой установки.
Нам нужно будет передать все необходимые поля, запрашиваемые на данной странице, в качестве параметров. Делается это с помощью следующего общего формата:
--parameter="value"
Нам нужно задать следующие параметры:
- url: доменное имя, которое будет использоваться для доступа к вашему сайту. Если у вас нет доменного имени, введите ваш IP-адрес
- title: заголовок вашего сайта
- admin_user: имя, под которым вы будете входить на сайт и выполнять административные задачи
- admin_password: пароль для администратора
- admin_email: почтовый адрес, на который будут приходить разные оповещения
Мы добавим эти данные после команды core и подкоманды install. Вот как будет выглядеть итоговая команда:
wp core install --url="your_domain_name" --title="Your Blog Title" --admin_user="admin" --admin_password="your_password" --admin_email="your_email"
Чтобы сконфигурировать все необходимые компоненты, требуется потратить определенное время. Когда все закончится, вы должны увидеть следующую строку:
Success: WordPress installed successfully.
Теперь вы можете посетить свой сайт в браузере (здесь приведен скриншот для темы Twenty Thirteen):
Как использовать справочную систему wp-cli
Хотя wp-cli не включает в себя традиционную страницу с руководством man, она идет вместе со встроенной справочной системой. Вы можете получить доступ к справке, просто задав:
wp help DESCRIPTION Manage WordPress through the command-line. SYNOPSIS wp <subcommand> SUBCOMMANDS cache Manage the object cache. cap Manage user capabilities. cli Get information about WP-CLI itself. . . .
Вы увидите все подкоманды верхнего уровня, которые используются в wp-cli для управления разными областями WordPress.
Чтобы выйти, введите q.
Первый уровень команд лучше всего просмотреть, введя wp, после чего пробел, а затем несколько раз tab. Вы увидите все доступные подкоманды:
wp <tab><tab> cache eval network-meta role theme cap eval-file option scaffold transient cli export plugin search-replace user comment help post shell user-meta core import post-meta site db media rewrite term
Вы можете использовать справочную систему для получения справки об определенной подкоманде:
wp help theme NAME wp theme DESCRIPTION Manage themes. SYNOPSIS wp theme <subcommand> SUBCOMMANDS activate Activate a theme. delete Delete a theme. . . .
Как вы можете видеть, каждая из этих подкоманд имеет свои собственные подкоманды. Можно идти вниз по справочной структуре:
wp help theme install NAME wp theme install DESCRIPTION Install a theme. . . .
Вы можете получить справочную информацию обо всех аспектах системы, которые вы желаете использовать.
Как установить темы с помощью wp-cli
Чтобы продемонстрировать базовое использование wp-cli, мы установим новую тему – этот шаг делается очень часто при запуске нового блога.
Для начала давайте посмотрим, какие темы уже установлены:
wp theme list +----------------+----------+--------+---------+ | name | status | update | version | +----------------+----------+--------+---------+ | twentythirteen | active | none | 1.1 | | twentytwelve | inactive | none | 1.3 | +----------------+----------+--------+---------+
Как вы можете видеть, у нас установлено две темы, и в текущий момент мы используем одну из них – twentythirteen. Это прекрасно, но несколько скучно.
Давайте подыщем что-то более интересное:
wp theme search fancy Success: Showing 5 of 5 themes. +---------------+---------------+--------+ | name | slug | rating | +---------------+---------------+--------+ | Bold Headline | bold-headline | 100 | | Clearly | clearly | 90 | | The Skeleton | the-skeleton | 100 | | Metronome | metronome | 0 | | Shipyard | shipyard | 0 | +---------------+---------------+--------+
Мы видим, что найдено 5 тем, которые утверждают, что являются «fancy», т.е. необычными. Bold Headline выделяется в этом списке благодаря своему 5-звездочному рейтингу. Давайте воспользуемся этой темой. Используем строку из столбца slug в следующей команде:
wp theme install bold-headline
Если мы посмотрим снова, мы увидим, что тема была успешно установлена:
wp theme list +----------------+----------+--------+---------+ | name | status | update | version | +----------------+----------+--------+---------+ | bold-headline | inactive | none | 1.2.5 | | twentythirteen | active | none | 1.1 | | twentytwelve | inactive | none | 1.3 | +----------------+----------+--------+---------+
Мы можем активировать нашу новую тему, просто указав следующее:
wp theme activate bold-headline
Теперь, если мы посетим наш сайт, мы увидим, что наша новая тема была применена:
Супер!
Как управлять плагинами через wp-cli
Вы можете управлять плагинами точно так же, как и в случае с темами. Для управления плагинами используются по большей части те же самые подкоманды.
wp plugin list +---------+----------+--------+---------+ | name | status | update | version | +---------+----------+--------+---------+ | akismet | inactive | none | 2.5.9 | | hello | inactive | none | 1.6 | +---------+----------+--------+---------+
У нас установлено два плагина, но ни один не активирован.
Давайте установим плагин, который убедит пользователей делиться контентом в социальных сетях. Есть плагин под названием Digg-Digg, используемый для этого:
wp plugin search Digg
Мы видим несколько разных альтернатив. Давайте установим вместо него лучше плагин aas-digg-digg-alternative. Опять же, сослаться на плагин можно при помощи его слага slug:
wp plugin install aas-digg-digg-alternative
Мы можем активировать плагин, введя следующее:
wp plugin activate aas-digg-digg-alternative
Вот результат:
Как управлять контентом через wp-cli
Если вы не испытываете никакого дискомфорта от набора записей в редакторе командной строки, вы можете вполне писать хоть целые посты через wp-cli:
Чтобы получить список всех записей блога, введите:
wp post list +----+--------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+--------------+-------------+---------------------+-------------+ | 1 | Hello world! | hello-world | 2013-10-31 20:02:18 | publish | +----+--------------+-------------+---------------------+-------------+
В данный момент у нас имеется только стандартное сообщение. Вместо того чтобы удалять его, давайте его отредактируем, чтобы сделать его более полезным. Мы можем обратиться к нужному посту, указав его ID:
wp post edit 1
Удаляем контент и меняем его на следующий текст:
Hello. This is my first official blog post. I hope to be adding some additional content here soon. Have a great day!
Если вы сохраните и закроете файл, изменения тут же отобразятся на сайте. Нам нужно также изменить заголовок, чтобы тот соответствовал нашему нового контенту:
wp post update 1 --post_title="An Introduction..."
Вы можете посмотреть, как все это выглядит, посетив блог:
Мы можем добавить совершенно новый пост, введя следующую команду:
wp post create --post_status=publish --post_title="Second Post" --edit
В итоге откроется редактор, где мы можем вводить наш следующий пост:
Hello. Here is another post. I am becoming quite prolific.
Как обращаться к базе данных через wp-cli
Одна из наиболее полезных особенностей wp-cli – это интеграция с SQL-бэкэндом.
Вы можете обратиться к базе данных WordPress, просто введя команду:
wp db cli
Вы получите командную строку MySQL, в которой вы можете выполнять разные административные задачи. Покинуть интерфейс можно, введя:
exit
Стоит отметить, что большинство популярных операций с базой данных вы можете также делать и непосредственно через интерфейс wp-cli.
Чтобы получить пользователей и их связанные ID, вы можете использовать следующую команду:
wp db query "SELECT user_login,ID FROM wp_users;" +------------+----+ | user_login | ID | +------------+----+ | admin | 1 | +------------+----+
Как вы можете видеть, в данный момент у нас есть только один пользователь. Вы можете использовать эту информацию для обновления записи, которую мы недавно создали. Давайте добавим поле с автором к записи. Обязательно используйте правильный ID записи:
wp post update 6 --post_author=1
Теперь наш пост будет иметь автора, который будет выведен как admin рядом с нашим контентом.
Мы можем оптимизировать нашу базу данных, выполнив:
wp db optimize
Как обновить WordPress через wp-cli
Мы можем поддерживать WordPress в актуальном виде, выполнив следующие команды:
wp core update wp core update-db
Что более важно, мы можем также обновить наши плагины, которые часто становятся источником проблем с безопасностью. Для этого достаточно ввести:
wp plugin update --all
Заключение
Теперь вы знаете, как выполнять задачи в WordPress через командную строку. Это не только легкий и быстрый способ управления многочисленными сайтами для разных клиентов, но и хороший способ выполнения скриптинга для простой реализации комплексных задач.
Эффективно используя wp-cli, вам не понадобится постоянно переключаться между окном терминала и окном браузера для проверки изменений.
Источник: digitalocean.com