WP-CLI (WordPress Command Line Interface) — это интерфейс командной строки для управления WordPress. С его помощью администраторы, разработчики и технические специалисты могут выполнять множество задач, таких как управление плагинами, темами, настройками сайта и базой данных, минуя традиционную панель управления. WP-CLI значительно ускоряет процесс работы, особенно когда требуется обработка больших объемов данных или частое выполнение рутинных задач.
Преимущества WP-CLI
- Скорость: Выполнение команд через терминал позволяет быстро решать задачи, которые через графический интерфейс могут занять больше времени.
- Автоматизация: Поддержка скриптов и автоматизация рутинных задач делают WP-CLI незаменимым инструментом для регулярного обслуживания сайтов.
- Эффективность работы с большими сайтами: Удобно управлять несколькими сайтами или сетками (multisite) WordPress из одной консоли.
- Минимум ресурсов: WP-CLI использует минимальные ресурсы, что особенно полезно на хостингах с ограниченными возможностями.
Установка WP-CLI
Перед началом установки убедитесь, что WP-CLI еще не установлен в вашем окружении. Для этого выполните команду:
wp --version
Если версия WP-CLI отображается, значит, WP-CLI уже установлен.
Установка на Linux и Windows WSL
Для Linux и WSL процесс установки состоит из нескольких шагов:
- Загрузка пакета WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
- Проверка скачанного пакета
php wp-cli.phar --info
- Присвоение прав на исполнение и перемещение
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Теперь WP-CLI установлен, и его команды доступны для выполнения из любой директории.
Установка на Windows
- Убедитесь, что PHP установлен и доступен в командной строке. Проверьте это командой
php -version
- Скачайте
wp-cli.phar
и сохраните его, например, в папкуC:\wp-cli
. - Создайте файл
wp.bat
в этой же папке со следующим содержимым:
@ECHO OFF
php "c:/wp-cli/wp-cli.phar" %*
Теперь WP-CLI можно использовать в любой директории командной строки Windows.
Проверка корректности установки
После выполнения предыдущих шагов команда wp --info
отобразит информацию об установке WP-CLI. Вы увидите версию WP-CLI, версию PHP, серверную ОС и другую полезную информацию.
wp --info
Основные команды WP-CLI
WP-CLI предлагает множество команд для управления различными аспектами WordPress-сайта. Наиболее часто используемые команды помогают решать задачи, связанные с плагинами, темами, обновлениями, а также позволяют управлять настройками сайта без использования графического интерфейса. Рассмотрим основные команды WP-CLI и приведем примеры их использования.
1. Управление плагинами
Работа с плагинами через WP-CLI включает установку, активацию, деактивацию и удаление плагинов. Вот несколько ключевых команд для управления плагинами:
- Установка плагина:
wp plugin install plugin-slug
Например, чтобы установить плагин Yoast SEO, введите:
wp plugin install wordpress-seo
- Активация плагина:
wp plugin activate plugin-slug
Активируем, например, Yoast SEO:
wp plugin activate wordpress-seo
- Деактивация плагина:
wp plugin deactivate plugin-slug
Чтобы деактивировать плагин Yoast SEO:
wp plugin deactivate wordpress-seo
- Удаление плагина:
wp plugin delete plugin-slug
Пример для удаления плагина Yoast SEO:
wp plugin delete wordpress-seo
Эти команды особенно полезны при управлении большим количеством плагинов и ускоряют процесс их администрирования.
2. Управление темами
Команды WP-CLI для работы с темами позволяют быстро устанавливать, активировать и обновлять темы, а также управлять несколькими темами одновременно.
- Установка темы:
wp theme install theme-slug
Например, чтобы установить тему Twenty Twenty-One:
wp theme install twentytwentyone
- Активация темы:
wp theme activate theme-slug
Чтобы активировать тему Twenty Twenty-One:
wp theme activate twentytwentyone
- Удаление темы:
wp theme delete theme-slug
Например, удаление темы Twenty Twenty-One:
wp theme delete twentytwentyone
3. Управление обновлениями
WP-CLI также позволяет выполнять обновления WordPress, плагинов и тем напрямую через командную строку.
- Обновление WordPress:
wp core update
- Обновление плагинов:
wp plugin update --all
Эта команда обновит все установленные плагины. Также можно обновить конкретный плагин, указав его slug:
wp plugin update plugin-slug
- Обновление тем:
wp theme update --all
Аналогично можно обновить конкретную тему, указав ее slug:
wp theme update theme-slug
Эти команды позволяют поддерживать сайт в актуальном состоянии, избегая необходимости вручную обновлять каждое расширение через админ-панель.
4. Управление настройками
С помощью WP-CLI можно управлять настройками сайта, включая изменение имени сайта, URL, электронной почты администратора и других параметров.
- Изменение имени сайта:
wp option update blogname "Новое название сайта"
- Изменение URL сайта:
wp option update siteurl "https://example.com"
- Изменение электронной почты администратора:
wp option update admin_email "[email protected]"
Эти команды особенно полезны при массовом изменении настроек на нескольких сайтах или при необходимости внесения быстрых правок в конфигурацию.
Управление пользователями и контентом через WP-CLI
WP-CLI предоставляет мощные возможности для управления пользователями и контентом на сайте. С помощью команд можно добавлять, редактировать и удалять пользователей, а также создавать, редактировать и удалять записи и страницы.
1. Управление пользователями
Работа с пользователями в WP-CLI включает создание новых пользователей, изменение их ролей и удаление учетных записей. Эти команды особенно полезны, если нужно массово управлять пользователями или создавать учетные записи для тестирования.
- Создание пользователя:
wp user create username [email protected] --role=role
Например, создадим пользователя с именем john_doe
и ролью editor
:
wp user create john_doe [email protected] --role=editor
- Изменение роли пользователя:
wp user set-role username role
Чтобы назначить пользователю john_doe
роль administrator
:
wp user set-role john_doe administrator
- Удаление пользователя:
wp user delete user_id
Например, чтобы удалить пользователя с ID 3:
wp user delete 3
- Список пользователей:
wp user list
Эта команда отобразит список всех пользователей на сайте, включая их роли и адреса электронной почты.
- Обновление данных пользователя
WP-CLI позволяет обновить данные пользователя, например, имя, email или описание:
wp user update имя_пользователя --display_name="Новое Имя" [email protected]
Пример обновления:
wp user update ivan --display_name="Иван Иванов" [email protected]
- Сброс пароля
Для сброса пароля пользователя WP-CLI предоставляет простую команду:
wp user update имя_пользователя --user_pass=новый_пароль
Пример:
wp user update ivan --user_pass=newsecurepassword
2. Управление записями
WP-CLI позволяет управлять записями, включая создание, обновление и удаление записей. Это особенно полезно, если необходимо массово обновить контент или создать тестовые данные.
- Создание новой записи:
wp post create --post_type=post --post_title="Название записи" --post_status=publish
Например, создадим новую запись с заголовком «Новость недели»:
wp post create --post_type=post --post_title="Новость недели" --post_status=publish
- Обновление записи:
wp post update post_id --post_title="Новый заголовок"
Чтобы изменить заголовок записи с ID 5 на «Обновленные новости»:
wp post update 5 --post_title="Обновленные новости"
- Удаление записи:
wp post delete post_id
Например, удалим запись с ID 5:
wp post delete 5
- Список записей:
wp post list
Эта команда выведет список всех записей, их ID, заголовки и статус публикации.
3. Управление страницами
С WP-CLI можно легко управлять и страницами сайта, выполняя аналогичные действия, что и с записями: создание, обновление и удаление.
- Создание новой страницы:
wp post create --post_type=page --post_title="Название страницы" --post_status=publish
Например, создадим страницу «Контакты»:
wp post create --post_type=page --post_title="Контакты" --post_status=publish
Обновление страницы:
wp post update page_id --post_title="Новый заголовок страницы"
Чтобы изменить заголовок страницы с ID 7 на «Наши контакты»:
wp post update 7 --post_title="Наши контакты"
Удаление страницы:
wp post delete page_id
Например, удалим страницу с ID 7:
wp post delete 7
Эти команды значительно упрощают массовое управление контентом и позволяют легко вносить изменения в структуру сайта.
4. Управление комментариями
WP-CLI предоставляет возможности для управления комментариями, включая их одобрение, удаление и изменение статуса.
- Одобрение комментария:
wp comment approve comment_id
Например, чтобы одобрить комментарий с ID 15:
wp comment approve 15
- Удаление комментария:
wp comment delete comment_id
Чтобы удалить комментарий с ID 15:
wp comment delete 15
- Массовая модерация комментариев:
Команда wp comment list
позволит вывести список комментариев, чтобы можно было легко выбрать нужные для модерации.
Управление базой данных и резервное копирование с WP-CLI
WP-CLI предоставляет мощные инструменты для управления базой данных WordPress. Вы можете выполнять резервное копирование, импорт и экспорт базы данных, а также оптимизировать её для повышения производительности. Это особенно полезно, когда доступ к панели управления сайта ограничен или когда нужно выполнить операции с базой данных напрямую.
1. Экспорт базы данных
Экспорт базы данных позволяет сохранить текущие данные сайта в виде SQL-файла, который можно использовать для резервного копирования или переноса сайта.
- Команда для экспорта:
wp db export имя_файла.sql
Например, создадим резервную копию базы данных под названием backup.sql
:
wp db export backup.sql
Файл backup.sql
будет сохранён в корневом каталоге WordPress.
2. Импорт базы данных
Импорт позволяет загрузить ранее экспортированную базу данных в WordPress. Это полезно при восстановлении сайта из резервной копии или переносе его на новый сервер.
- Команда для импорта:
wp db import имя_файла.sql
Например, импортируем файл backup.sql
:
wp db import backup.sql
Важно: Перед импортом убедитесь, что база данных существует и не содержит нужных данных, иначе возможна потеря данных.
3. Оптимизация базы данных
WP-CLI позволяет оптимизировать таблицы базы данных, что может повысить производительность сайта, особенно если база данных часто обновляется.
- Команда для оптимизации:
wp db optimize
- Эта команда проверит и оптимизирует все таблицы базы данных, устраняя возможные фрагментации данных.
4. Очистка базы данных
В некоторых случаях требуется сбросить все данные сайта, например, при настройке тестовой среды. С помощью WP-CLI это можно сделать быстро и эффективно.
- Команда для очистки базы данных:
wp db reset
Предупреждение: Эта команда полностью очищает базу данных, удаляя все данные. Она полезна для тестирования, но её следует использовать с осторожностью.
5. Выполнение SQL-запросов
С помощью WP-CLI можно выполнять произвольные SQL-запросы, что может быть полезно для сложных операций, таких как массовое обновление данных.
- Команда для выполнения SQL-запроса:
wp db query "SQL-запрос"
Например, изменим статус всех записей на draft
:
wp db query "UPDATE wp_posts SET post_status='draft' WHERE post_status='publish';"
Пример запроса:
wp db query "SELECT user_login FROM wp_users"
Пример вывода:
+------------------+
| user_login |
+------------------+
| admin |
| ivan |
| editor_user |
+------------------+
6. Проверка и ремонт базы данных
Если возникают ошибки в базе данных, WP-CLI может помочь выявить и устранить проблемы.
- Проверка базы данных:
wp db check
Эта команда проверит целостность всех таблиц в базе данных.
- Ремонт базы данных:
wp db repair
- Эта команда попытается автоматически исправить обнаруженные ошибки в базе данных.
7. Включение и отключение режима транзакций
WP-CLI поддерживает выполнение SQL-запросов с использованием транзакций. Для этого можно использовать флаг --no-tables-prefix
, чтобы исключить префикс таблиц из SQL-запросов. Например:
wp db query "UPDATE wp_options SET option_value = 'new_value' WHERE option_name = 'siteurl'" --no-tables-prefix
8. Преобразование базы данных для переноса
При переносе сайта с одного сервера на другой важно изменить все URL-адреса в базе данных. Для этого WP-CLI предоставляет команду wp search-replace
, которая позволяет искать и заменять строки в базе данных:
wp search-replace 'oldsite.com' 'newsite.com'
Эта команда заменит все вхождения oldsite.com
на newsite.com
в базе данных.
Чтобы ограничить замену только определёнными таблицами, можно добавить флаг --tables
:
wp search-replace 'oldsite.com' 'newsite.com' --tables=wp_posts,wp_options
9. Проверка и обновление структуры таблиц
Если вы обновляете WordPress или его плагины, может потребоваться обновить структуру таблиц базы данных. Для этого используется команда wp db upgrade
:
wp db upgrade
10. Полный процесс резервного копирования и восстановления базы данных
- Сначала создадим резервную копию:
wp db export full_backup.sql
- При необходимости очистим базу данных:
wp db reset
- Восстановим базу данных из резервной копии:
wp db import full_backup.sql
Работа с файлами и директориями WordPress с помощью WP-CLI
WP-CLI предлагает возможности для управления файлами и директориями WordPress, что удобно для быстрого администрирования файловой структуры сайта. Эти команды позволяют управлять папками и файлами, а также выполнять базовые операции с темами и плагинами, что может значительно упростить обслуживание сайта.
1. Управление файловой системой WordPress
WP-CLI также предоставляет возможность для выполнения операций на уровне файловой системы. Это полезно для установки и настройки конфигурационных файлов или временных правок.
- Проверка прав доступа:Чтобы проверить права доступа файловой системы:
wp eval "echo (is_writable(WP_CONTENT_DIR)) ? 'Writable' : 'Not Writable';"
- Создание резервной копии файла:
Скопируем файл wp-config.php
:
cp wp-config.php wp-config-backup.php
Это создаст копию wp-config.php
под именем wp-config-backup.php
.
2. Очистка кэша
WP-CLI позволяет очистить кэш, что полезно при обновлении содержимого сайта или устранении ошибок.
- Очистка кэша объектного кэширования:
wp cache flush
Эта команда сбросит весь объектный кэш.
- Очистка кэша сторонних плагинов (например, для плагина WP Super Cache):
wp super-cache flush
Управление медиафайлами и загрузками через WP-CLI
WP-CLI значительно упрощает управление медиафайлами в WordPress, позволяя не только загружать, но и изменять или удалять файлы через командную строку. Это полезно, например, для массовых операций или для автоматизации процессов.
1. Загрузка медиафайлов
С помощью команды wp media import
можно загружать медиафайлы непосредственно из командной строки. Команда поддерживает загрузку файлов как с локального компьютера, так и с URL-адресов.
Пример загрузки файла:
wp media import /path/to/image.jpg
Если файл находится в интернете, можно указать URL:
wp media import http://example.com/image.jpg
Вы также можете добавить теги, категории или указать, в какой пост вставить изображение. Например, для загрузки изображения с указанием поста:
wp media import /path/to/image.jpg --post_id=123
2. Получение списка медиафайлов
WP-CLI позволяет получить список всех медиафайлов, загруженных на сайт, с помощью команды wp media list
. Эта команда возвращает список файлов в виде таблицы, в которой указаны их ID, URL и другие данные.
Пример получения списка медиафайлов:
wp media list
Если вы хотите вывести только файлы с определенным типом, например, изображения, используйте параметр --type
:
wp media list --type=image
3. Удаление медиафайлов
Для удаления медиафайлов используется команда wp media delete
. Вы можете указать ID файла или использовать параметры фильтрации для удаления нескольких файлов сразу.
Пример удаления одного файла:
wp media delete 123
Если вы хотите удалить все файлы определенного типа (например, изображения), можно использовать:
wp media delete $(wp media list --type=image --format=ids)
Рекомендации по WP-CLI
- Используйте сильные пароли для учетных записей
Даже если WP-CLI предоставляет быстрый доступ к административным функциям, все аккаунты, особенно те с правами администратора, должны иметь сложные пароли. Это защитит от несанкционированного доступа к критическим функциям, включая доступ через WP-CLI. - Ограничьте доступ к WP-CLI на уровне сервера
Позволяйте использовать WP-CLI только авторизованным пользователям и ограничьте доступ к серверу по IP-адресу. Например, вы можете настроить брандмауэр для ограничения IP-адресов, с которых возможен доступ к командной строке. Для повышения уровня безопасности можно также использовать VPN или SSH-ключи. - Ограничьте использование WP-CLI для определенных пользователей
Разрешайте доступ к WP-CLI только опытным администраторам, так как неверное использование команд может нарушить работу сайта. Если у вас многопользовательская система, вы можете настроить доступ только для определенных ролей или пользователей с правами администратора. - Периодически обновляйте WP-CLI и плагины
Убедитесь, что WP-CLI, плагины и темы обновлены до последних версий. WP-CLI регулярно обновляется для исправления ошибок и улучшения безопасности, поэтому, устанавливая последние версии, вы снижаете риск эксплойтов. - Защитите сервер от атак с помощью двухфакторной аутентификации
Двухфакторная аутентификация (2FA) для SSH-доступа к серверу добавляет дополнительный уровень защиты. Включение 2FA поможет предотвратить доступ к командной строке, даже если злоумышленник получил пароль. - Регулярно создавайте резервные копии
Поскольку WP-CLI позволяет вносить изменения в базу данных и файлы сайта, регулярное резервное копирование поможет быстро восстановить сайт в случае случайных изменений или ошибок. - Журналируйте действия WP-CLI
Включите ведение логов для всех действий, выполняемых через WP-CLI. Это позволит вам отслеживать все команды, выполненные на сервере, и своевременно выявлять подозрительную активность.
Эти советы помогут безопасно использовать WP-CLI, снижая риски взлома или несанкционированного доступа к сайту.
Заключение
Использование WP-CLI позволяет быстро и эффективно выполнять задачи по безопасности, обновлению, управлению пользователями и созданию резервных копий, что делает его мощным инструментом для владельцев сайтов и администраторов. Даже если вы новичок, понимание базовых команд WP-CLI обеспечит вас всем необходимым для управления сайтом на профессиональном уровне.