Посмотрите, как вы можете быстрее выполнять обычные задачи WordPress или даже автоматизировать их, используя мощь bash.
Что такое wp-cli?
wp-cli — это инструмент для управления WordPress через консольное окно.
Когда интерфейс администратора WordPress настолько красив и прост в использовании, возникает естественный вопрос: зачем вам использовать интерфейс командной строки?
Есть две основные причины:
- Клавиатура быстрее, чем мышь. Для опытных пользователей ввод команды может быть на несколько порядков быстрее, чем нажатие кнопки в веб-браузере.
- Сценарии — вы можете поместить несколько команд в текстовый файл и выполнять его автоматически.
В этом уроке я собираюсь дать вам представление о том, для чего хорош wp-cli.
Установка wp-cli
Перед его использованием вам понадобится несколько вещей:
-
UNIX-подобная оболочка — если вы используете Mac или Linux, вы можете запустить wp-cli на вашем локальном компьютере. Если вы работаете в Windows, вы можете войти на свой сервер Linux через Putty и установить там wp-cli.
-
PHP 5.3+ и утилита php-cli. Вы можете проверить наличие этих команд, выполнив следующую команду:
1php -v -
Git — это то, что мы будем использовать для установки и обновления wp-cli.
Проект wp-cli все еще находится в зачаточном состоянии, поэтому лучший способ оставаться в курсе последних версий — это клонировать его из github:
1
2
3
|
git clone —recurse-submodules git://github.com/andreascreten/wp-cli.git ~/git/wp-cli
cd ~/git/wp-cli
sudo utils/build-dev
|
~/git/wp-cli
— это каталог, в который будет установлен wp-cli. Не стесняйтесь изменить его на то, что вы хотите.
Вот и все. Теперь команда wp
должна быть доступна:
1
2
|
cd /var/www/public_html/wordpress
wp
|
На мультисайте
Если вы хотите использовать wp-cli для многосайтовой установки, вам нужно решить, над каким блогом вы хотите работать:
1
|
wp —blog=myblog.mynetwork.com
|
Чтобы не передавать параметр --blog
для каждой команды, вы можете сохранить его в файле с особым именем:
1
|
echo ‘myblog.mynetwork.com’ > wp-cli-blog
|
wp-cli прочитает этот файл, если нет параметра --blog
.
Ядро обработки
Для начала посмотрим, с какой версией WordPress мы имеем дело:
1
|
wp core version —extra
|
Чтобы выполнить обновление, вам просто нужно написать:
1
|
wp core update
|
Обработка плагинов
Давайте посмотрим, какие плагины мы установили:
1
|
wp plugin status
|
Похоже, есть обновление для Akismet. Давайте установим это:
1
|
wp plugin update akismet
|
Теперь давайте установим и активируем плагин с wordpress.org:
1
|
wp plugin install google-sitemap-generator —activate
|
Также вы можете установить версию плагина для разработки:
1
|
wp plugin install google-sitemap-generator —activate —dev
|
О, и посмотрите, теперь доступна новая команда:
1
|
wp google-sitemap
|
Мы можем быстро переключить плагин с активного на неактивный и наоборот:
1
|
wp plugin toggle google-sitemap-generator
|
Это хороший способ отладки хуков активации .
Точно так же вы можете запустить процедуру удаления плагина, не удаляя файлы плагина:
1
|
wp plugin uninstall google-sitemap-generator
|
И, конечно же, вы можете удалить плагин:
1
|
wp plugin delete google-sitemap-generator
|
Работа с темами
У нас есть несколько команд для работы с темами:
1
|
wp theme status
|
В отличие от плагинов, вы можете одновременно запускать только одну тему, поэтому активация темы автоматически «деактивирует» предыдущую:
1
|
wp theme activate twentyten
|
И вот небольшая хитрость, чтобы перейти в каталог конкретной темы:
1
|
cd $(wp theme path twentyeleven)
|
Генерация данных
Если вы пишете тему и хотите стилизовать нумерацию страниц, вам понадобится много постов. Вот самый быстрый способ получить их:
1
|
wp generate posts —count=1000
|
Если вы хотите стилизовать список пользователей, вы можете также сгенерировать некоторых из них:
1
|
wp generate users —role=author
|
Вы также можете создавать отдельных пользователей:
1
|
wp user create stan [email protected]
|
Создание файлов экспорта
Вы можете периодически экспортировать ваш контент в файл WXR.
1
|
wp export —path=./ —user=admin
|
Вы можете передать дополнительные параметры для ограничения экспортируемого содержимого, такие как --category
, --start_date
и т. Д.
Изменение параметров на лету
Существуют простые команды для операций CRUD с опциями:
1
2
3
|
wp option get permalink_structure
wp option add foo bar
wp option delete foo
|
Вы не хотите делать это на регулярной основе, так как большинство опций ограничены определенными значениями. Но это может пригодиться в сценариях.
Операции с базами данных
Если вы хотите сделать резервную копию базы данных, просто напишите:
1
|
wp db dump
|
Или, возможно, вам нужно сделать быстрый запрос, чтобы узнать, когда было опубликовано последнее сообщение:
1
|
wp db query «SELECT MAX(post_date) from wp_posts WHERE post_type = ‘post’ AND post_status = ‘publish'»
|
Открыть интерактивный сеанс MySQL, чтобы выполнить некоторую диагностику, так же просто:
1
|
wp db cli
|
Запуск произвольного кода
Иногда единственный способ сообщить wp-cli, что вы хотите, это описать его в коде PHP:
1
|
wp eval-file do-my-laundry.php
|
С помощью приведенной выше команды wp-cli сначала загрузит WordPress, а затем загрузит и выполнит ваш PHP-файл.
Это полезно в сценариях развертывания или для других сложных действий, которые невозможно выполнить с помощью встроенных команд.
Вы также можете передать встроенный PHP-код:
1
|
wp eval ‘echo WP_CONTENT_DIR;’
|
Создание ваших собственных команд
Хотите верьте, хотите нет, но wp-cli написан в основном на PHP. Каждая команда является классом, где каждый метод представляет подкоманду.
Удобно то, что вы можете создать свой собственный класс, поместить его в плагин, и wp-cli автоматически распознает его как собственный. Подробное руководство по созданию команд доступно в вики проекта.
Вывод
Я надеюсь, что убедил вас хотя бы попробовать wp-cli. Если вы обнаружили ошибку или у вас есть запрос на добавление функции, рассмотрите возможность открытия проблемы .
Есть интересный вариант использования для wp-cli? Пожалуйста, поделитесь этим в комментариях ниже.