Полезные примеры
Сборка различных полезных примеров при работе с WP-CLI. Тут собраны не просто команды (примеры отдельных команд смотрите в описании команды), а комбинации команд или работа команд в связке с чем-либо еще. Ниже примеры из практики.
Установка WordPress
Перед установкой нужно
Базу можно создать через WP CLI командой wp db create, если есть соответствующие права. Об этом рассказано в секции ниже, а этот блок информации является альтернативой.
Создать базу данных (если её нет), через phpMyAdmin или другой GUI. Также это можно сделать через консоль. Подробнее, как работать с базой из консоли тут.
Подключаемся к серверу баз данных под рутом или другим юзером, у которого достаточно прав для создания БД:
mysql -u root -p jo76hazq
Если пароль состоит из разнообразных символов, то консоль выдаст ошибку. В таких случаях лучше сделать так:
// 1 ввод mysql -u root -p // 2 ввод (консоль попросит ввести сам пароль) J0(kFB4)~W+NN2}jM7aea;d>aT.hT^W2k;28ZQP27M36Hq6MwX
Такой способ даже лучше, так как в истории консоли не останется пароля.
Создаем базу данных
CREATE DATABASE `my_db` CHARACTER SET utf8 COLLATE utf8_general_ci;
Устанавливаем WordPress через CLI
В папку с проектом скачиваем файлы WordPress с русской локализацией:
wp core download --locale=ru_RU
Создаем файл wp-config.php
и прописываем данные для соединения с БД:
wp config create --dbname=my_db --dbuser=root --dbpass=jo76hazq
Создаём базу данных, если она не создана и есть права, на основе данных в wp-config.php
.
wp db create
Устанавливаем WordPress:
wp core install --url=example.com --title=Example --admin_user=supervisor --admin_email=info@example.com --admin_password=strongpassword
Несколько команд CLI из файла
Смотрите в описании wp eval file
Копирование БД основного сайта в тестовый (мультисайт)
Задача: нужно скопировать БД из сайта aaa.com в сайт bbb.com. Нужно учесть что это мультисайт.
cd ~/aaa.com/public_html/ wp db export all-db-dump.sql cd ~/bbb.ru/public_html/ wp db import ~/bbb.com/public_html/all-db-dump.sql rm ~/aaa.com/public_html/all-db-dump.sql wp search-replace aaa.com bbb.ru --all-tables --network --report-changed-only
Запуск WP-CLI команды для каждого сайта сети
Как выполнить одну команду на всех сайтах сети мультисайт?
Для выполнение WP-CLI команды на конкретном под-сайте сети WordPress multisite
WP-CLI использует глобальный параметр --url=<url>
для указания контекста запроса. Запустить команду на сразу всех под-сайтах можно, комбинируя wp site list
и xargs
.
За кулисами, --url=<url>
устанавливает переменные $_SERVER['HTTP_HOST']
, $_SERVER['REQUEST_URI']
и связанные с ними переменные контекста запроса. Затем WordPress интерпретирует эти переменные, чтобы понять, какой сайт загружать в многосайтовой сети.
Вот пример, в котором команда wp option get home выполняется на всех сайтах:
wp site list --field=url | xargs -I % wp option get home --url=%
Деконструкция этого примера:
-
wp site list --field=url
выдает список URL для всех сайтов в сети. Вы можете настроить список URL путем фильтрации на основе поддерживаемых аргументов. -
Оператор
|
передает результаты изwp site list
вxargs
, утилиту, которая принимает строки ввода и передает их некоторой команде. xargs -I % wp option get home --url=%
запускаетwp option get home
для заданного сайта, идентифицированного с помощью--url=<url>
. Знак%
- это заполнитель, который заменяется на URL из списка сайтов.