WP-CLI: отличное руководство по командной строке WordPress

  1. Предпосылки
  2. Установить WP-CLI
  3. Вот как вы называете WP-CLI
  4. Многоузловое
  5. Встроенная помощь
  6. Обновить WP-CLI
  7. Установить WordPress
  8. 1. Скачать WordPress
  9. 2. Настройте WordPress
  10. 3. Завершите установку WordPress
  11. Обновление WordPress
  12. Управление плагинами с помощью WP-CLI
  13. Установить, активировать и удалить плагины
  14. Удалить плагины
  15. Отключить все плагины
  16. Поиск плагинов
  17. Список плагинов
  18. Обновление плагинов
  19. Управлять темами
  20. Установить тему
  21. Обновление, поиск, список тем
  22. Настроить постоянные ссылки
  23. Управление пользователями
  24. Управление комментариями с помощью WP-CLI
  25. Поиск и замена
  26. Многоузловое
  27. Плагины и расширения для WP-CLI
  28. пакеты
  29. Управление редакциями статей
  30. Посмотрите на ревизии
  31. Удалить ревизии
  32. Есть намного больше ...

Управлять WordPress через веб-интерфейс довольно удобно. По крайней мере, во многих случаях. Особенно как пользователь Linux, но иногда вам нужна командная строка, особенно когда действия должны быть автоматизированы. К счастью, есть с WP-CLI ( «Интерфейс командной строки WordPress» ) решение. И то, что WP-CLI может сделать, можно увидеть: установить WordPress, обновить плагины, создавать и читать дампы базы данных, управлять комментариями и многое другое.

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

Предпосылки

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

Установить WP-CLI

Установка WP-CLI относительно легко. Для этого сначала переключитесь на свой домашний каталог (где вы, вероятно, уже находитесь после входа в систему). Там вы можете скачать WP-CLI с помощью следующей команды:

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

Хорошая идея проверить, что все работает:

$ php wp-cli.phar --info Бинарный файл PHP: / usr / bin / php5 Версия PHP: 5.6.17-0 + использованный php.ini deb8u1: /etc/php5/cli/php.ini ....

Это или что-то подобное, тогда все работает. Затем вы можете переместить файл по своему пути и сделать его исполняемым. Например, в качестве пользователя root вы можете скопировать его в / usr / local / bin, но здесь я перемещаю его в мой локальный каталог bin /:

chmod 755 wp-cli.phar mv wp-cli.phar ~ / bin / wp

Теперь он называется wp и может вызываться соответственно:

wp --info

Вопрос, надеюсь, не изменился.

Вот как вы называете WP-CLI

Вызов уже виден выше, только за wp, затем присоединяется команда и, возможно, подкоманда. Так что вы можете, например, с

список комментариев wp

перечислите все комментарии в своем блоге. Обязательным условием, однако, является то, что вы вызываете эту команду в своем экземпляре WordPress (то есть там, где wp-login.php находится или глубже в дереве каталогов). В противном случае WP-CLI вряд ли сможет узнать, на каком экземпляре WordPress он должен работать.

Кроме того, вы можете указать путь к экземпляру WordPress:

wp --path = / var / www / example.org / htdocs / список комментариев

Здесь я предполагаю, что ваш WordPress находится по адресу /var/www/example.org/htdocs/.

Многоузловое

Если у вас многосайтовая установка, вы заметите, что, например, со списком комментариев wp вы получаете только комментарии первого блога. Здесь WP-CLI не знает, какой блог подразумевается, так как оба имеют одинаковую установку WordPress и базу данных.

Поэтому, чтобы выбрать конкретный сайт мультисайта, вы должны использовать параметр --url:

wp список комментариев --url = http: //site2.example.org

Это тогда перечислит комментарии от site2.example.org. Это относится соответственно ко всем другим командам.

Встроенная помощь

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

wp help

типирование. Здесь перечислены все команды и глобальные параметры. С помощью wp help <команда> выводятся справка и подкоманды для соответствующей команды, а с помощью wp help <команда> <unterkommando> затем описание подкоманды.

Обновить WP-CLI

Чтобы обновить WP-CLI, вы можете использовать WP-CLI самостоятельно

обновление wp cli

называют. Убедитесь, что вы тоже можете написать команду wp. Если вы установили его глобально как root, вы также должны вызвать wp cli update как root, но затем добавить параметр --allow-root. В общем, WP-CLI отказывается запускаться от имени пользователя root.

Чтобы узнать, какую версию вы установили, вы можете вызвать wp cli version. Чтобы проверить, готово ли обновление, используйте wp cli check-update.

Установить WordPress

Чтобы установить WordPress, вам нужно

  • уже созданная база данных (т.е. имя базы данных, имя пользователя и пароль)
  • Настроенный веб-сервер, указывающий на каталог, в который вы хотите установить WordPress.

Перейдите в каталог, где должен быть установлен WordPress. WordPress может быть установлен в 3 простых шага (также легко автоматизировать):

1. Скачать WordPress

Перейдите к следующей команде для загрузки WordPress:

скачать ядро ​​wp

Это загружает последнюю версию WordPress. Если вы хотите загрузить другую версию, вы можете добавить --version = <версия>. Вы заменяете <version> на желаемую версию, например, wp core download --version = 3.9.1.

Это, однако, загружает английскую версию WordPress. Если вы хотите использовать немецкую версию вместо этого, вы должны добавить параметр --locale:

загрузка ядра wp --locale = en_US

Или в случае версии вы:

загрузка ядра wp --locale = en_DE_formal

2. Настройте WordPress

Далее необходимо настроить WordPress, поэтому будет написан wp-config.php. Есть команда wp core config.

Вы называете это в базовой версии следующим образом:

wp core config --dbname = wp_database --dbuser = wp --dbpass = securepswd

Это настраивает базу данных с указанными значениями (которые вы, конечно, должны заменить). Кроме того, соли генерируются автоматически. Он также проверяет, доступна ли база данных с данными данными.

Лично я бы сделал дальнейшую настройку с помощью текстового редактора. Однако иногда полезно сделать это с помощью команды (ключевое слово: снова автоматизация). Для этого вы можете передать дополнительные директивы конфигурации через флаг --extra-php:

wp core config --dbname = testing --dbuser = wp --dbpass = securepswd --dbprefix = myprefix_ --extra - php << PHP define ('WP_DEBUG', true); PHP

В этом случае, в дополнение к режиму отладки, я также устанавливаю префикс таблицы (всегда хорошая идея).

3. Завершите установку WordPress

Теперь мы написали файлы в нужном месте и файл конфигурации. Мы уже могли получить доступ к экземпляру через веб-браузер и пройти через мастер установки. Но мы не должны, потому что мы можем сделать это через командную строку:

wp core install --url = example.org \ --title = "Название сайта" \ --admin_user = dont_call_me_admin \ --admin_password = safe_password_0815_4711 \ [email protected]

Я думаю, что параметры здесь не требуют пояснений. Если вы не хотите получать уведомление по электронной почте, вы можете отменить его с помощью --skip-email.

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

Обновление WordPress

Надеюсь, каждый знает, как важно поддерживать WordPress в актуальном состоянии. К счастью, WP-CLI также помогает здесь. Чтобы обновить WordPress, вызовите следующую команду:

обновление ядра wp

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

обновление ядра wp --minor

Иногда вы также хотите установить специальную версию. Это вы можете с

wp core update --version = 4.4.2

делать. Если номер версии меньше установленной версии, вам также нужно использовать --force, потому что WP-CLI не позволит вам сделать это.

Вы также можете указать имя файла ZIP, если вы уже скачали WordPress:

wp core udpate latest.zip

Может быть, тогда база данных должна быть обновлена. Вы можете сделать это с помощью следующей команды:

дБ обновление ядра дБ

Управление плагинами с помощью WP-CLI

Так что теперь к плагинам. Здесь вы можете сделать с WP-CLI полное управление, так что установка, обновление, активация и т. Д. Это также очень полезно, если вы больше не заходите в веб-бэкэнд.

Установить, активировать и удалить плагины

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

wp плагин установить w3-total-cache

установить плагин W3 Total Cache. Далее вы можете пойти с этим

wp-плагин активирует w3-total-cache

Включить. Или вы можете сделать это за один шаг

Установка плагина wp - активировать w3-total-cache

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

Остается вопрос, какое имя вы должны указать, потому что плагин. И это так называемый слаг (здесь w3-total-cache). Это часть URL-адреса страницы плагинов в каталоге плагинов WordPress:

Управлять WordPress через веб-интерфейс довольно удобно

Как найти плагин для WP-CLI

Вы также можете установить плагины, которых нет в каталоге WordPress (например, коммерческие плагины). Для этого просто замените подключаемый модуль плагина на имя или URL-адрес ZIP-файла:

wp plugin install my-super-commercial-plugin.zip wp plugin install https://example.org/plugins/my-super-commercial-plugin.zip

Удалить плагины

Конечно, вы также можете удалить плагин. Вы делаете это следующим образом:

wp плагин деактивировать w3-total-cache wp плагин удалить w3-total-cache

Можно также резюмировать это снова:

wp плагин удалить - деактивировать w3-total-cache

Отключить все плагины

Если ничего не работает, один из советов - отключить все плагины. Это, конечно, трудно сделать в веб-интерфейсе, если ничего не работает. У кого есть WP-CLI, здесь явно есть преимущество, потому что здесь легко

wp плагин деактивировать - все

Как активировать все плагины, оставлено читателю в качестве домашней работы.

Поиск плагинов

Вы также можете искать плагины (например, чтобы найти слаг). Например, если вы хотите установить плагин SEO, следующая команда может помочь вам найти правильный (или хотя бы несколько):

Поиск плагина $ wp SEO Success: Показано 10 из 1843 плагинов. + ------------------------------- + ----------------- - + -------- + | имя | слизняк | рейтинг | + ------------------------------- + ----------------- - + -------- + | SEO | SEO-волшебник | 76 | | SEO Ultimate | SEO-Ultimate | 78 | | WordPress SEO плагин комментариев | блог-комментарии-SEO | 88 | | Ссылайтесь на нас - SEO Widget | ссылка на нас | 100 | | SEO от SQUIRRLY ™ | белочка-SEO | 90 | | WP Meta SEO | wp-meta-seo | 90 | | SEO Post Content Links | контент-ссылки | 98 | | SEO плагин LiveOptim | Ливоптим | 88 | | Yoast SEO | WordPress SEO 80 | | SEO Framework | автоописание | 100 | + ------------------------------- + ----------------- - + -------- +

Чтобы увидеть следующие 10 записей, вы можете использовать опцию -page = 2. Вы можете изменить количество результатов на странице, используя --per-page = 50.

Кроме того, вы можете определить отображаемые поля с помощью параметра --fields. Введите wp help plugin search для полного списка полей.

Если вы используете эту команду в скрипте, вы также можете выбрать другой формат вывода. Вы можете сделать это с --format, где вы можете выбрать между таблицей, CSV, JSON, Count и YAML. Сортировка (например, по рейтингу) невозможна.

Вот еще один пример:

$ wp поиск плагинов seo --format = csv --per-page = 2 --fields = name, slug, test Успешно показано: показаны 2 из 1843 плагинов. name, slug, SEO, seo-wizard, 4.5.1 SEO Ultimate, seo-ultimate, 4.3.3

Обратите внимание, что здесь отображается строка с Успехом, которая может помешать использованию в скрипте. Если вы хотите запретить такие сообщения, вы должны добавить --quiet в качестве параметра. Особенно в сценариях, эта функция, вероятно, имеет больше смысла, потому что в противном случае плагины, вероятно, легче найти в Интернете.

Список плагинов

Чтобы узнать, какие плагины установлены, вы можете вызвать список плагинов wp:

$ wp список плагинов + ------------------------------------- + ------- --- + ----------- + ---------- + | имя | статус | обновление | версия | + ------------------------------------- + ---------- + ----------- + ---------- + | выше-кратная оптимизация | неактивный | нет | 2.3.14 | | расширенные пользовательские поля | активный | нет | 4.4.7 | | усилитель | активный | нет | 0.3.2 | | антиспам-пчела | активный | нет | 2.6.8 | ...

Обновление плагинов

Очень полезная функция WP-CLI - возможность обновлять плагины с помощью скрипта. Преимущество заключается в том, что файлы WordPress могут иметь другого владельца, чем веб-сервер. Таким образом, злоумышленник не может изменить это. если он имеет «только» доступ к веб-интерфейсу.

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

$ wp plugin status 5 установленных плагинов: I-the-the-fold-оптимизация 2.3.14 A-advanced-custom-fields 4.4.7 A & 0.3.2 A антиспам-пчела 2.6.8 UA fb-instant-article 2.9 ...

Из первого столбца видно, что оптимизация выше-только-установлена, но не активирована, следующие три также активированы, и fb-instant-статьи нуждается в обновлении.

Это вы можете тогда с

Обновление плагина wp fb-instant-статьи

установить. Если вы хотите выполнить обновление до определенной версии, вы можете сделать это с --version = 1.2.3.

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

Обновление плагина wp - все

Управлять темами

Когда все плагины готовы, нужна тема. Сначала я предполагаю, что существующая тема должна быть установлена. Это работает аналогично плагинам.

Установить тему

Как установить тему с

wp theme install <theme>

<theme> может быть:

Вы можете активировать тему напрямую с помощью --activate или сделать это отдельно:

тема wp активировать чистый журнал

Обновление, поиск, список тем

Как и плагины, вы также можете обновить темы. Это происходит с

обновление темы wp <theme>

где вы также можете указать --all и --version, как в плагинах.

То же самое относится к списку команд и статусу. Они также соответствуют командам плагина, описанным выше.

Настроить постоянные ссылки

Постоянными ссылками также можно управлять с помощью WP-CLI. Это делается с помощью команды wp rewrite. Если вы хотите изменить структуру постоянных ссылок на / 2016/04 / postname, вы можете

Структура перезаписи wp '/% year% /% monthnum% /% postname%'

Вы также можете установить категорию и базу ключевых слов (как в настройках постоянной ссылки):

wp переписать структуру --category_base '/ kat /' --tag-base '/ keyword /' '/% year% /% monthnum% /% postname%'

Затем правила перезаписи могут быть обновлены с помощью wp rewrite flush или перечислены в списке wp rewrite.

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

Давайте перейдем к управлению пользователями. Если вы хотите создать нового автора с именем пользователя klaus и адресом электронной почты [email protected], позвоните по следующему номеру:

wp user create [email protected] --role = автор

Если вам не важно, используется роль по умолчанию (обычно хорошо подписчик). Другие параметры:

  • --user_pass = <pass> передает пароль для нового пользователя
  • --display_name = <showame> определяет отображаемое имя
  • --first_name = <имя> хранит имя
  • --last_name = <фамилия> в соответствии с фамилией
  • --send_email указывает, следует ли отправлять почту новому пользователю или нет
  • --porcelain возвращает только идентификатор пользователя, полезный для автоматизации

Удалить пользователя идет вместе

wp user delete klaus

Если вы хотите «передать» статьи пользователя другому пользователю, это делается с помощью --reassign = <user_id>.

Конечно, вам нужен идентификатор, который вы можете получить из списка пользователей:

список пользователей wp

Опять же, есть много полезных параметров, таких как

  • - role = <role> отображает только пользователей с указанной ролью
  • --format = <формат> определяет формат вывода (таблица, csv, json, count, yaml)

Когда дело доходит до базы данных, да, прежде всего экспорт (например, для интересной резервной копии). Это идет с этим

wp db export

Для удобства вам не нужно здесь вводить имя пользователя и пароль, так как это уже настроено в wp-config.php. После выполнения команды в текущем каталоге находится файл SQL с именем <dbname> .sql. Если вы хотите экспортировать его в другое место, вы можете указать путь к нему:

wp db export /tmp/export.sql

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

wp db import /tmp/import.sql

Иногда также бывает просто иметь подсказку для базы данных. Это легко

wp db cli

Дополнительные команды могут оптимизировать базу данных, исправить ее и т. Д. Узнайте больше с помощью wp help db.

Управление комментариями с помощью WP-CLI

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

комментарий wp удалить $ (список комментариев wp --status = spam --format = ids)

Здесь даже 2 команды работают вместе: со списком комментариев wp отображаются все комментарии, которые имеют статус спам. Параметр --format = ids определяет, что выводятся только идентификаторы. Затем они используются для удаления комментариев wp в качестве входных данных.

Для обычной модерации комментариев, командная строка, вероятно, довольно плохо подходит, но для пакетных операций, как указано выше, она определенно включена. Особенно из-за тайм-аутов.

Поиск и замена

Любой, кому когда-либо приходилось перемещать экземпляр WordPress, будет рад, что большая часть конфигурации хранится в базе данных, а не в файлах конфигурации. Поэтому, если вы хотите изменить URL-адрес сайта, это не так просто, а со многими плагинами это часто ручная работа.

Проще снова командная строка. Поэтому с WP-CLI есть правильная команда:

wp search -replace live.example.org dev.example.org

В этом примере все вхождения live.example.org заменяются на dev.example.org. WP-CLI также обрабатывает сериализованные данные PHP.

Если вы не доверяете поиску и замене, вы можете использовать -dry-run, чтобы увидеть, сколько случаев в какой таблице будет изменено:

$ wp search-replace live.example.org dev.example.org + ------------------ + --------------- -------- + -------------- + ------ + | Таблица | Колонка | Замены | Тип | + ------------------ + ----------------------- + ------ -------- + ------ + | wp_options | имя_опции | 1 | SQL | | wp_options | option_value | 15 | PHP | | wp_users | user_email | 4 | SQL | + ------------------ + ----------------------- + ------ -------- + ------ +

Например, в этом выпуске вы видите, что строка поиска также появляется в адресах электронной почты. Вы, вероятно, не хотите менять это, и, к счастью, вы можете ограничить поиск-замену конкретными таблицами (например, wp_options). Для этого просто введите нужные таблицы в конце:

wp search -replace live.example.org dev.example.org wp_options wp_something ...

Тем не менее, вы должны знать немного или должны хотя бы еще раз убедиться, что у вас есть резервная копия (это то, что вы всегда делаете в любом случае, верно?). В противном случае экспорт wp db выполняется очень быстро.

Многоузловое

Для мультисайта, конечно, есть что рассмотреть, например, поиск и замена на нужных сайтах. WP-CLI изначально работает на сайте по умолчанию или на сайте, указанном параметром --url. С помощью --network вы можете выполнять поиск и замену на всех сайтах одновременно.

Плагины и расширения для WP-CLI

WP-CLI уже содержит довольно много команд. Чем больше, тем лучше, поэтому WP-CLI можно расширить с помощью плагинов. Более того: некоторые плагины, такие как W3 Total Cache , уже имеют встроенную поддержку WP-CLI. Так что если у вас установлен W3 Total Cache и WP-CLI, вы можете использовать

полный сброс кеша wp

очистить кеш из командной строки. Список всех команд получается так, как описано с помощью wp help.

Если вы хотите узнать, какие другие плагины поддерживают WP-CLI или какие предоставляют только новые команды, вы можете сделать это в Каталог инструментов смотреть.

пакеты

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

Есть список доступных пакетов в индексе пакета или через саму командную строку:

просмотр пакета wp

Пакет устанавливается следующим образом:

пакет wp <имя_пакета>

Примером может быть:

пакет wp установить petenelson / wp-cli-size

Тогда есть новая команда, названная размером wp:

размер базы данных

Управление редакциями статей

Подобно слишком многим спам-комментариям в базе данных, слишком большое количество редакций статей может замедлить WordPress. Но как удалить ненужные ревизии сразу? Вот идет плагин WP-пересмотры-кли используется. Только одна проблема: он существует только как репозиторий исходного кода на github, а не в каталоге плагинов WordPress.

Так что ты делаешь?

Как описано выше, вы также можете установить плагины из ZIP-файла. Кроме того, этот файл не обязательно должен быть локальным, но на него также можно ссылаться по URL. URL получен из github, потому что хранилище также предоставляется в виде ZIP-файла:

URL получен из github, потому что хранилище также предоставляется в виде ZIP-файла:

Ссылка для скачивания на плагин WP Revision

Щелкнув правой кнопкой мыши, вы можете скопировать URL-адрес ссылки и установить плагин вместе с ним:

установить плагин wp - активировать https://github.com/trepmal/wp-revisions-cli/archive/master.zip

Это устанавливает и активирует плагин ревизии. В самом WordPress вы не видите ничего, кроме плагина в списке плагинов, потому что он предоставляет только одну команду WP CLI.

Теперь, когда плагин установлен, вы можете использовать ревизии wp help для просмотра подкоманд, предоставленных плагином.

Посмотрите на ревизии

Все сохраненные ревизии вы можете с

список ревизий wp

можно перечислить. Вероятно, их довольно много, поэтому вы не ограничили максимальное количество ревизий, которые будут созданы в wp-config.php (вы можете проверить это, например, с помощью статуса ревизий wp). Но с помощью --post_id = и --post_type = вы можете ограничить список соответственно статьей или типом статьи.

Удалить ревизии

На самом деле мы хотели удалить ревизии, но да. Здесь есть две команды: clean и dump.

Разница между командами заключается в том, что dump просто полностью очищает все ревизии, в то время как clean имеет больший контроль. С дампом ревизий wp все ревизии исчезли.

Но если вы хотите сохранить 5 ревизий и удалить только все старые, то вы можете сделать это

WP ревизии чистые 5

делать. При желании вы можете снова указать параметры --post_id и --post_type, описанные выше, для обработки только одной статьи или одного типа статьи.

Есть намного больше ...

Хотя статья довольно длинная, в WP-CLI, конечно, есть еще много. Поэтому я буду расширять статью, если это необходимо. Если вы хотите немного просмотреть, вы, конечно, можете сделать это с помощью wp.

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