Кратко: WP-CLI — это официальная командная строка для WordPress. Вместо десятков кликов в админ-панели вы вводите короткие команды вида wp plugin update --all прямо в терминале по SSH, и WordPress выполняет их за секунды. WP-CLI нужен для массовых и рутинных задач: обновление ядра, плагинов и тем, установка и удаление плагинов, работа с записями, пользователями и медиафайлами, экспорт и импорт базы данных, поиск и замена ссылок, сброс кэша, управление запланированными задачами. Устанавливается он одним файлом и не требует правки кода сайта. Ниже — как установить WP-CLI, какие команды нужны новичку в первую очередь, готовые примеры, сравнительная таблица и правила безопасности при работе с боевым сайтом.
Что такое WP-CLI и зачем он нужен новичку
WP-CLI — это официальный инструмент командной строки для WordPress. По сути это программа на PHP, которая запускается в терминале сервера и умеет делать почти всё то же, что вы привыкли делать мышкой в админ-панели: устанавливать и обновлять плагины, публиковать записи, создавать пользователей, экспортировать базу данных, менять настройки, сбрасывать кэш. Разница в скорости и в подходе: то, что в админке требует десятков кликов и ожидания загрузки страниц, в консоли выполняется одной короткой командой.
Команды в WP-CLI всегда начинаются с ключевого слова wp. Например, wp plugin list покажет список всех плагинов с версиями и статусом, а wp plugin update --all обновит их разом. Работает это потому, что WP-CLI подключается к вашему сайту напрямую — через те же файлы и ту же базу данных, что и веб-версия, только без браузера и без лишних слоёв интерфейса.
Зачем это нужно новичку. Во-первых, скорость: обновление десятка плагинов через админку — это минуты и постоянные клики, а через консоль — одна команда и несколько секунд. Во-вторых, автоматизация: команды можно объединять в скрипты и запускать по расписанию, например вместе с планировщиком wp-cron. В-третьих, диагностика: если сайт не открывается и админка недоступна, именно WP-CLI часто остаётся единственным способом отключить сломанный плагин или посмотреть состояние базы. И наконец, это просто удобно, когда нужна массовая операция — заменить адрес сайта по всей базе, удалить сотню спам-комментариев или создать сразу несколько тестовых записей. Про поиск ошибок в коде мы подробно писали в статье про WP_DEBUG и отладку WordPress.
Важно понимать: WP-CLI не заменяет админку полностью. Настройка внешнего вида, работа с блоками редактора, подбор плагинов «на глаз» удобнее в веб-интерфейсе. WP-CLI — это инструмент для рутинных и массовых операций, и именно в них он даёт главную выгоду.
Как установить WP-CLI: SSH, требования и проверка
WP-CLI работает там, где есть PHP версии 7.2 или новее и доступ по SSH к серверу. На обычном виртуальном хостинге SSH, как правило, есть — уточните в панели управления, как его включить. На простом shared-хостинге без SSH установить WP-CLI не получится, зато на VPS и на большинстве тарифов, заточенных под WordPress, он доступен сразу.
Установка на Linux занимает один шаг: скачать исполняемый файл и положить его в системную папку, чтобы команда была доступна из любого каталога:
# Скачиваем официальный phar-файл 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 --info должна вывести версию PHP, версию WP-CLI и путь к интерпретатору. Если терминал отвечает «command not found», проверьте, что файл действительно лежит в /usr/local/bin/wp и что у него есть права на запуск.
Дальше нужно «встать» в папку сайта: WP-CLI определяет, с каким сайтом работать, по текущему каталогу. Перейдите в директорию, где лежит файл wp-config.php, и проверьте связь с сайтом:
# Переходим в папку сайта (подставьте свой путь)
cd ~/sites/mysite.ru
# Проверяем, что WP-CLI видит WordPress и показывает версию ядра
wp core version
# Краткая сводка: адрес сайта, версия, количество записей
wp core check-update Если команды возвращают версию WordPress и список доступных обновлений — установка прошла успешно и можно работать. Обратите внимание: в примерах выше мы не пишем sudo перед wp, потому что WordPress — это файлы пользователя. Запускать WP-CLI от имени root не рекомендуется: созданные файлы получат владельца root, и потом обычный веб-сервер не сможет их изменить. Об этом мы ещё скажем в разделе о безопасности.
Первые команды: ядро, плагины и темы
Самое частое, что делает новичок через WP-CLI — обновляет и обслуживает ядро, плагины и темы. Начнём с ядра WordPress:
# Какая версия ядра установлена
wp core version
# Есть ли обновление и что именно обновится
wp core check-update
# Обновить ядро до последней версии
wp core update
# Обновить базу данных после обновления ядра
wp core update-db
# Скачать свежую копию ядра без затрагивания wp-content
wp core download --force С плагинами работают команды группы wp plugin. Они показывают список, устанавливают, активируют, деактивируют и удаляют расширения. Вот минимальный набор, который стоит выучить:
# Список плагинов: статус, версия, доступное обновление
wp plugin list
# Только те, у кого есть обновление
wp plugin list --update=available
# Установить и сразу активировать плагин из каталога
wp plugin install contact-form-7 --activate
# Обновить все плагины разом
wp plugin update --all
# Отключить конкретный плагин (спасает, когда админка не грузится)
wp plugin deactivate broken-plugin
# Удалить плагин полностью
wp plugin delete broken-plugin С темами всё устроено так же, только командой wp theme. Отдельно полезна проверка на устаревшие темы: wp theme list --update=available покажет, что стоит обновить. Осознанное обновление — тема отдельной статьи: как не сломать сайт после апдейта ядра и расширений, мы разбирали в материале про безопасное обновление WordPress.
| Группа команд | Что делает | Полезный пример |
|---|---|---|
| wp core | Управление ядром WordPress: версия, обновление, база данных | wp core update |
| wp plugin | Установка, активация, обновление и удаление плагинов | wp plugin update —all |
| wp theme | Управление темами: список, установка, активация | wp theme list —update=available |
| wp post | Записи: создание, публикация, удаление, список | wp post create |
| wp user | Пользователи: создание, смена роли, сброс пароля | wp user list —role=administrator |
| wp db | Экспорт, импорт и обслуживание базы данных | wp db export backup.sql |
| wp option | Чтение и запись значений в таблице настроек | wp option get siteurl |
Эта таблица — шпаргалка на первое время. Запомнить все команды невозможно, и не нужно: wp help покажет список групп, а wp help plugin — все действия внутри группы с примерами. Документация встроена прямо в инструмент.
Записи, страницы и медиафайлы через WP-CLI
Группа wp post позволяет создавать и править записи без открытия редактора. Это незаменимо, когда нужно залить пачку тестовых материалов или обновить одно поле у сотни записей. Самое популярное действие — создать запись из файла с текстом:
# Создать черновик записи из HTML-файла
wp post create ./text.html --post_title="Черновик статьи" --post_status=draft
# Опубликовать существующую запись по ID
wp post update 123 --post_status=publish
# Список последних записей: ID, заголовок, статус, дата
wp post list --post_type=post --posts_per_page=10
# Удалить запись в корзину (без --force), окончательно — с --force
wp post delete 123 --force Страницы — это тот же тип записей со своим значением: wp post create --post_type=page. Медиафайлы добавляются командой wp media import, а метаполя — параметром --meta_input в виде JSON. Так можно программно заполнять кастомные поля, не заходя в редактор. Про то, как устроены произвольные поля и как выводить их в шаблоне, мы рассказывали в статьях про дочернюю тему WordPress и про работу с данными:
# Импорт изображения в медиатеку с привязкой к записи
wp media import ./photo.jpg --post_id=123 --title="Фото товара"
# Обновить метаполе у записи (значение передаём как JSON)
wp post meta update 123 price "4900"
# Посмотреть все метаполя записи
wp post meta list 123 Группа wp post отлично подходит для массовых правок: можно выбрать записи по условию и обновить их одной командой. Если сайт работает на WooCommerce, помните, что товары — это отдельный тип записей product, и к ним применимы те же команды с параметром --post_type=product. Про вывод каталога и настройку магазина есть отдельная статья — каталог товаров WooCommerce.
База данных и бэкапы: wp db и wp search-replace
Одна из самых сильных сторон WP-CLI — работа с базой данных. Команда wp db export делает резервную копию базы прямо из консоли, без захода в phpMyAdmin. Это быстрее, надёжнее и легко автоматизируется:
# Полный дамп базы в файл
wp db export backup-2026-09-24.sql
# Только нужные таблицы, например записи и метаданные
wp db export partial.sql --tables=wp_posts,wp_postmeta
# Восстановить базу из дампа
wp db import backup-2026-09-24.sql
# Проверить и починить таблицы базы
wp db check
wp db repair Отдельно стоит команда wp search-replace — она выполняет поиск и замену по всей базе с учётом сериализованных данных. Обычная замена в phpMyAdmin ломает сериализованные массивы, а WP-CLI делает это корректно. Типичный сценарий — переезд сайта с одного домена на другой:
# Сначала «сухой прогон»: показать, что будет заменено (ничего не меняем)
wp search-replace 'https://old-site.ru' 'https://new-site.ru' --dry-run
# Если всё верно — выполнить замену по всем таблицам
wp search-replace 'https://old-site.ru' 'https://new-site.ru' --all-tables
# После переноса обновить постоянные ссылки
wp rewrite flush Всегда делайте --dry-run до реальной замены: команда покажет таблицы и количество совпадений, но не тронет данные. Это самый безопасный способ убедиться, что вы не меняете лишнее. И до любой операции с базой держите свежий бэкап — про то, как наладить регулярное резервное копирование, читайте в статье резервное копирование WordPress, а про перенос контента между сайтами — в материале об импорте и экспорте в WordPress.
Пользователи, настройки, кэш и запланированные задачи
Администрирование сайта через WP-CLI — это ещё несколько коротких групп команд. Пользователями управляет wp user, настройками — wp option, кэшем — wp cache и wp transient, задачами по расписанию — wp cron.
# Список пользователей и их ролей
wp user list
# Создать администратора с заданным паролем
wp user create admin2 admin2@example.ru --role=administrator --user_pass=StrongPass123
# Сменить пароль существующему пользователю
wp user update 2 --user_pass=NewStrongPass456
# Прочитать и изменить настройку сайта
wp option get siteurl
wp option update blogdescription "Студия разработки сайтов" Кэш и запланированные задачи — то, что чаще всего «залипает» после правок. Сбросить кэш объектов и удалить все временные записи можно двумя строками, а посмотреть и запустить события wp-cron — командой wp cron event:
# Очистить кэш объектов WordPress
wp cache flush
# Удалить все «просроченные» временные записи (transients)
wp transient delete --all
# Список запланированных задач и время следующего запуска
wp cron event list
# Запустить задачу вручную сейчас
wp cron event run ds_daily_report Роли и права доступа — тема, в которой ошибка стоит дорого: лишние права у подрядчика или редактора открывают доступ к настройкам. Как правильно раздавать роли, разобрано в статье про пользовательские роли и права доступа в WordPress. А если сайт не отправляет письма (например, уведомления из wp-cron), пригодится материал про настройку SMTP и wp_mail.
Свои команды и конфиг wp-cli.yml
WP-CLI можно подстроить под себя. Файл wp-cli.yml в корне проекта хранит настройки по умолчанию: путь к сайту, адрес, параметры окружения. Это избавляет от постоянного ввода длинных флагов. Полезно, когда вы работаете с несколькими сайтами и не хотите каждый раз указывать --path.
# wp-cli.yml в корне проекта
path: wp
url: https://delai-sait.ru
core download:
locale: ru_RU
plugin update:
all: true Второй уровень — свои собственные команды. WP-CLI позволяет добавлять их через функцию WP_CLI::add_command: вы пишете обычную PHP-функцию и регистрируете её под своим именем. Так можно завернуть в команду любую рутинную операцию, например массовую проверку метаполей:
<?php
/**
* Своя команда WP-CLI: показать записи без заполненного метаполя.
* Регистрируется в mu-plugins или в functions.php дочерней темы.
*/
if ( defined( 'WP_CLI' ) && WP_CLI ) {
WP_CLI::add_command( 'ds check-meta', function ( $args, $assoc_args ) {
$key = isset( $assoc_args['key'] ) ? $assoc_args['key'] : 'price';
$posts = get_posts( array(
'post_type' => 'post',
'numberposts' => -1,
'meta_query' => array(
'relation' => 'OR',
array( 'key' => $key, 'compare' => 'NOT EXISTS' ),
array( 'key' => $key, 'value' => '', 'compare' => '=' ),
),
) );
if ( empty( $posts ) ) {
WP_CLI::success( 'Все записи заполнены — проблем нет.' );
return;
}
foreach ( $posts as $post ) {
WP_CLI::line( sprintf( '#%d %s', $post->ID, $post->post_title ) );
}
WP_CLI::warning( 'Найдено записей без поля: ' . count( $posts ) );
} );
} После этого команда wp ds check-meta --key=price покажет все записи, где метаполе не заполнено. Механика регистрации команд опирается на те же хуки WordPress, что и обычная разработка, — подробнее о них в статье про хуки WordPress: actions и filters. А идеи для маленьких полезных функций собраны в подборке полезных сниппетов для functions.php.
Сравнение WP-CLI и админ-панели
WP-CLI не отменяет админку, но для части задач он объективно выгоднее. Таблица помогает понять, где какой инструмент уместен.
| Задача | Через админ-панель | Через WP-CLI |
|---|---|---|
| Обновить 12 плагинов | По одному, с ожиданием и кликами | Одна команда: wp plugin update —all |
| Отключить плагин при белом экране | Часто невозможно — админка не грузится | wp plugin deactivate plugin-slug |
| Сделать дамп базы | Через phpMyAdmin, с лимитами и вручную | wp db export backup.sql |
| Сменить домен в базе | Только плагином или правкой SQL | wp search-replace старый новый —all-tables |
| Создать 50 тестовых записей | Вручную и долго | Скрипт из команд wp post create |
Общий вывод простой: для визуальной работы и разовых настроек — админка, для массовых операций, обслуживания и автоматизации — WP-CLI. Опытные разработчики держат под рукой оба инструмента и выбирают подходящий по ситуации, а не «воюют» за один из них.
Безопасность и типичные ошибки при работе с WP-CLI
Командная строка — инструмент без «страховочной сетки»: WP-CLI не переспрашивает, а сразу выполняет то, что вы написали. Поэтому несколько правил обязательно.
- Не запускайте WP-CLI от имени root. Флажок
--allow-rootсуществует, но созданные файлы будут принадлежать суперпользователю, и веб-сервер их не изменит. Работайте под владельцем файлов сайта. - Всегда делайте бэкап перед опасными командами. Сначала
wp db export, потомwp search-replaceилиwp db import. Восстановление из дампа занимает минуту, восстановление без дампа — часы. - Используйте
--dry-runдля замен. Командаwp search-replaceбез предварительной проверки способна поменять то, чего вы не планировали, — например, задеть тексты статей. - Не удаляйте плагин, который хранит данные. Перед
wp plugin deleteпроверьте, не останутся ли «осиротевшие» таблицы и метаполя. Иногда правильнее просто деактивировать расширение. - Защитите сам сайт после работ. Держите актуальные права доступа и следите за настройками безопасности — базовый чек-лист собран в статье про 10 настроек безопасности WordPress.
- Не забывайте про кэш после массовых правок. Изменили настройки или ссылки — сбросьте кэш, иначе посетители увидят старую версию. Подробнее — в материале про кэширование WordPress.
- Осторожно с мультисайтом. В сети WordPress команды по умолчанию действуют на текущий сайт; чтобы выполнить их для всей сети, нужен флаг
--network. Как устроена такая сеть — в статье про WordPress Multisite.
Отдельная частая ошибка — запуск команды не в той папке. WP-CLI определяет сайт по текущему каталогу, поэтому wp plugin list из домашней директории честно ответит, что WordPress не найден. Проверяйте wp core version перед работой: если команда вернула версию ядра, вы в правильном месте.

Частые вопросы о WP-CLI
Что такое WP-CLI простыми словами?
Это официальная командная строка для WordPress. Вы подключаетесь к серверу по SSH, переходите в папку сайта и вводите команды, начинающиеся со слова wp: например, wp plugin update —all обновляет все плагины сразу. WP-CLI выполняет те же действия, что админ-панель, но быстрее и без кликов мышью.
Как установить WP-CLI на хостинг?
Нужны PHP 7.2 или новее и доступ по SSH. Скачайте файл wp-cli.phar через curl, проверьте его командой php wp-cli.phar —info, затем сделайте исполняемым (chmod +x) и перенесите в /usr/local/bin/wp. После этого перейдите в папку с wp-config.php и проверьте работу командой wp core version.
Можно ли пользоваться WP-CLI без SSH?
Полноценно — нет, для командной строки нужен терминал сервера. На хостинге без SSH остаётся работать через админ-панель или файловый менеджер. Зато на VPS и большинстве тарифов для WordPress SSH доступен, а вместе с ним и WP-CLI. Некоторые панели управления также дают встроенный веб-терминал.
Чем WP-CLI лучше админ-панели WordPress?
Скоростью и автоматизацией. Массовые операции вроде обновления всех плагинов, экспорта базы или замены домена выполняются одной командой вместо десятков кликов. Кроме того, WP-CLI работает даже когда админка недоступна из-за ошибки, поэтому это незаменимый инструмент восстановления сайта.
Безопасно ли выполнять команды WP-CLI на живом сайте?
Сама команда безопасна, если вы понимаете, что она делает. Опасны команды удаления и замены: они выполняются без подтверждения. Перед любыми правками делайте дамп базы через wp db export, для замен используйте флаг —dry-run, не работайте от имени root и держите свежий бэкап сайта.
Что делать, если WP-CLI не видит WordPress?
Скорее всего, вы находитесь не в папке сайта. WP-CLI определяет установку по текущему каталогу, поэтому перейдите туда, где лежит wp-config.php, и проверьте командой wp core version. Если и там ошибка, убедитесь, что файл wp-config.php доступен для чтения, а пользователь, под которым вы вошли по SSH, имеет права на файлы WordPress.
Вывод
WP-CLI — это тот инструмент, который незаметно экономит часы: установка занимает один шаг, а дальше любая рутинная операция по сайту выполняется одной командой. Начните с трёх вещей. Первое — освойте группы wp core, wp plugin и wp theme: обновление ядра и расширений перестанет быть событием, растянутым на полчаса. Второе — держите под рукой wp db export и wp search-replace с флагом --dry-run: это ваша страховка при переездах и массовых правках. Третье — заведите привычку делать бэкап перед каждой опасной командой, потому что командная строка не переспрашивает.
Дальше можно двигаться глубже: настраивать wp-cli.yml под свои проекты, писать собственные команды для повторяющихся задач и связывать WP-CLI с задачами по расписанию. Как только вы привыкнете к консоли, возвращаться к ручному обновлению плагинов по одному уже не захочется.
Если же разбираться со всеми командами и настройками сервера нет времени, а сайт нужно поддерживать в порядке прямо сейчас, это можно поручить команде, которая профессионально делает и сопровождает сайты на WordPress: мы обновляем ядро и плагины без простоя, настраиваем резервные копии, чиним ошибки и берём проект на постоянную поддержку. Посмотрите услуги разработки и продвижения сайтов, примеры в портфолио выполненных проектов и другие технические материалы в блоге о сайтах и продвижении. Опишите задачу через форму обратной связи — подскажем, что можно автоматизировать на вашем сайте. А если нужна разовая доработка функциональности, посмотрите статьи про заказ доработки сайта программисту и про поддержку сайта: что входит и сколько стоит.



