Использование WP-CLI для управления WordPress сайтом через командную строку

wp-cli

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 /var/www/wordpress/public_html

Устанавливаем сайт через wp-cli

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

Если вы введете wp – команду для взаимодействия с wp-cli интерфейсом, то вы получите следующее сообщение:

wp

Error: The site you have requested is not installed.
Run `wp core install`.

Вы можете инициализировать сайт, введя ваш IP-адрес или доменное имя в браузере и заполнив форму, которая будет иметь следующий вид:

installation

Однако, поскольку данное руководство о том, как использовать 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):

default

Как использовать справочную систему 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

Теперь, если мы посетим наш сайт, мы увидим, что наша новая тема была применена:

new_theme

Супер!

Как управлять плагинами через 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

Вот результат:

plugin

Как управлять контентом через 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..."

Вы можете посмотреть, как все это выглядит, посетив блог:

edit_post

Мы можем добавить совершенно новый пост, введя следующую команду:

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

Блог про WordPress
Комментарии: 3
  1. Роман

    Вау! Это надо изучить внимательно, спасибо!
    Вопрос не по теме: что за плагин используете на этом сайте для подписки на комментарии?

    1. Дмитрий (автор)

      Плагин Subscribe to Comments Reloaded

      1. Роман

        Спасибо!

Добавить комментарий для Дмитрий Отменить ответ

Получать новые комментарии по электронной почте.