WP-CLI для новичков: установка и основные команды

WP-CLI для новичков: установка и основные команды

Кратко: 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 перед работой: если команда вернула версию ядра, вы в правильном месте.

TimeWeb

Частые вопросы о 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: мы обновляем ядро и плагины без простоя, настраиваем резервные копии, чиним ошибки и берём проект на постоянную поддержку. Посмотрите услуги разработки и продвижения сайтов, примеры в портфолио выполненных проектов и другие технические материалы в блоге о сайтах и продвижении. Опишите задачу через форму обратной связи — подскажем, что можно автоматизировать на вашем сайте. А если нужна разовая доработка функциональности, посмотрите статьи про заказ доработки сайта программисту и про поддержку сайта: что входит и сколько стоит.

Clearfy

Поделиться:
Telegram ВКонтакте