Использование 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. Роман

        Спасибо!

Добавить комментарий

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