WP-CLI — это мощный инструмент командной строки для управления WordPress-сайтами без необходимости заходить в админку. Он позволяет автоматизировать множество рутинных задач, ускоряя работу разработчиков и администраторов. В этой статье подробно разберем, как использовать WP-CLI для автоматизации, приведем полезные команды и примеры собственных скриптов.
Что такое WP-CLI и почему он полезен
WP-CLI (WordPress Command Line Interface) — это набор команд для управления WordPress через терминал. Он позволяет выполнять операции с плагинами, темами, базой данных, пользователями и настройками без использования браузера. Особенно полезен для:
- Автоматизации повторяющихся задач
- Управления большим количеством сайтов (multisite или мультисерверные установки)
- Быстрого деплоя и поддержки сайтов
- Интеграции с CI/CD процессами
Для разработчиков WP-CLI — это инструмент, который экономит время и снижает количество ошибок, связанных с ручным вводом.
Установка и базовая настройка WP-CLI
WP-CLI можно установить на сервер с доступом к SSH. Основные шаги:
- Скачайте бинарный файл WP-CLI:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar- Проверьте работоспособность:
php wp-cli.phar --info- Сделайте файл исполняемым и переместите в PATH:
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wpТеперь вы можете запускать команды через wp.
Основные команды WP-CLI для автоматизации задач
Рассмотрим полезные команды для автоматизации повседневных задач.
Управление плагинами и темами
- Установка плагина:
wp plugin install plugin-slug --activate - Обновление всех плагинов:
wp plugin update --all - Отключение плагина:
wp plugin deactivate plugin-slug - Обновление темы:
wp theme update theme-slug
Работа с базой данных
- Оптимизация базы:
wp db optimize - Резервное копирование базы:
wp db export backup.sql - Импорт базы:
wp db import backup.sql - Выполнение SQL-запроса:
wp db query 'YOUR SQL QUERY'
Управление пользователями
- Создание пользователя:
wp user create username email@example.com --role=editor - Смена пароля:
wp user update username --user_pass=newpassword - Удаление пользователя:
wp user delete userID --reassign=1
Автоматизация задач с помощью пользовательских команд WP-CLI
WP-CLI позволяет создавать собственные команды, что дает гибкость в автоматизации. Ниже — пример создания кастомной команды для удаления всех черновиков старше 30 дней.
class WPDetect_Cleanup_Command {
/**
* Удаляет черновики, созданные более 30 дней назад
*
* ## EXAMPLES
*
* wp wpdetect cleanup-drafts
*
* @when after_wp_load
*/
public function cleanup_drafts() {
$args = [
'post_type' => 'post',
'post_status' => 'draft',
'date_query' => [
[
'before' => date('Y-m-d', strtotime('-30 days')),
],
],
'fields' => 'ids',
'nopaging' => true,
];
$drafts = get_posts($args);
if (empty($drafts)) {
WP_CLI::success('Нет черновиков для удаления.');
return;
}
foreach ($drafts as $draft_id) {
wp_delete_post($draft_id, true);
}
WP_CLI::success('Удалено ' . count($drafts) . ' старых черновиков.');
}
}
if (defined('WP_CLI') && WP_CLI) {
WP_CLI::add_command('wpdetect cleanup-drafts', 'WPDetect_Cleanup_Command');
}Чтобы использовать команду, добавьте этот класс в файл плагина или темы, подключите его и вызовите в терминале:
wp wpdetect cleanup-draftsПримеры задач для автоматизации с помощью WP-CLI
Автоматическое обновление и проверка плагинов
Можно написать bash-скрипт, который на cron обновляет плагины и отправляет отчет на почту:
#!/bin/bash
cd /var/www/your-wordpress-site
wp plugin update --all
UPDATED=$(wp plugin list --update=available --field=name)
if [ -z "$UPDATED" ]; then
echo "Все плагины обновлены." | mail -s "Отчет обновления плагинов" admin@example.com
else
echo "Обновлены плагины: $UPDATED" | mail -s "Отчет обновления плагинов" admin@example.com
fiАвтоматическое создание резервных копий
С помощью WP-CLI можно быстро создавать дампы базы данных и архивировать файлы:
#!/bin/bash
cd /var/www/your-wordpress-site
DATE=$(date +"%Y%m%d%H%M")
wp db export backups/db_backup_$DATE.sql
zip -r backups/files_backup_$DATE.zip wp-content/uploads
# Далее можно скопировать файлы на удаленный сервер или облако
Рекомендации по безопасности при работе с WP-CLI
WP-CLI работает с полными правами пользователя, под которым запущен процесс, поэтому важно соблюдать меры безопасности:
- Не храните пароли и ключи в открытом виде в скриптах
- Ограничьте доступ к SSH только доверенным пользователям
- Проверяйте скрипты перед выполнением, чтобы избежать удаления нужных данных
- Используйте WP-CLI на тестовых средах перед запуском на боевых сайтах
Заключение
WP-CLI — незаменимый инструмент для автоматизации работы с WordPress. Он позволяет ускорить рутинные операции, снизить количество ошибок и интегрировать управление сайтом в современные DevOps-процессы. Используйте встроенные команды и создавайте собственные для решения специфичных задач. Для удобства можно комбинировать WP-CLI с планировщиком задач cron и bash-скриптами.
Если вы хотите расширить функционал WordPress с помощью готовых решений, обратите внимание на плагины из WPSHOP, которые помогут автоматизировать и оптимизировать работу сайта.