В WordPress Playground появился встроенный терминал для выполнения PHP-фрагментов и команд WP-CLI прямо в браузере, а также новая панель инструментов разработчика

В WordPress Playground появились две новые функции: встроенный терминал для работы с PHP и WP-CLI, а также инструменты разработчиков в панели Dock. Компактная панель Dock позволяет держать под рукой часто используемые функции и обеспечивает прямой доступ к инструментам для анализа и изменения сайта.

С помощью терминала можно просматривать контент, проверять конфигурацию, тестировать API WordPress или вносить быстрые изменения — и всё это без настройки локальной среды, не покидая сайт playground.wordpress.net. Терминал работает в рамках активного экземпляра Playground, поэтому выполняемые команды взаимодействуют с сайтом WordPress, который отображается на экране.

Новая группа инструментов для разработчиков в панели Dock

Перейдите на сайт playground.wordpress.net и дождитесь запуска WordPress. В панели Dock в нижней части экрана отобразятся пункты «New», «Playgrounds», «Site Settings», «Export» и «Dev Tools». В компактном режиме кнопки, предназначенные для разработчиков, скрываются, чтобы пользователи, знакомящиеся с WordPress, видели более простую панель инструментов.

Выберите Dev Tools рядом с кнопкой Export, чтобы развернуть панель инструментов (Dock). В ней отобразятся разделы Blueprint, Database, Terminal, Files, Logs и Email. Затем выберите Terminal, чтобы запустить среду выполнения для текущего сайта.

Playground запоминает состояние панели инструментов разработчика (открыта она или скрыта) при перезагрузке страницы. Если свернуть панель, незавершенный черновик в Terminal или Blueprint сохраняется, что позволяет вернуться к работе с инструментом позже.

Еще одно нововведение — инструмент Terminal, который поддерживает два режима работы:

  • PHP — для выполнения небольших фрагментов кода PHP в среде с уже загруженным WordPress.
  • WP-CLI — для выполнения команд через интерфейс командной строки в контексте активного сайта.

Для каждого режима сохраняются собственные данные ввода, результаты и история команд, поэтому можно переключаться между PHP и WP-CLI, не теряя текущего состояния работы.

Изучайте WordPress с помощью PHP

Режим PHP предлагает редактор с подсветкой синтаксиса и нумерацией строк, а также несколько готовых к запуску примеров. Вы можете выбрать такие примеры, как Versions, Site URL, List posts, Create post или Active plugins, отредактировать код и нажать кнопку Run.

WordPress уже загружен, и открывающий тег < ?php указывать не обязательно. Например, этот фрагмент кода выводит заголовки записей сайта:

foreach ( get_posts() as $post ) {
	echo $post->post_title . "\n";
}

Вы также можете просмотреть версии и конфигурацию:

echo 'WordPress ' . get_bloginfo( 'version' ) . "\n";
echo 'PHP ' . phpversion() . "\n";
echo 'Site URL: ' . get_site_url();

Каждый запуск кода оценивается независимо. Переменные, созданные в ходе одного выполнения, недоступны в следующем, однако изменения, внесенные через API WordPress, сохраняются в активной среде Playground. Например, функция update_option() изменяет базу данных сайта точно так же, как это происходило бы при вызове из плагина.

Для запуска кода с клавиатуры используйте сочетание клавиш Ctrl+Enter или Command+Enter. Если фрагмент кода не завершен, он останется в редакторе, позволяя вам дописать его. Сообщения об ошибках синтаксиса и ошибках выполнения выводятся в краткой форме и, по возможности, содержат информацию о месте возникновения ошибки в коде.

Управляйте сайтом с помощью WP-CLI

Переключайтесь на WP-CLI, чтобы проверить или изменить WordPress максимально быстро. Сначала попробуйте такую команду, работающую только на чтение:

wp option get blogname

Префикс wp необязателен, поэтому команда get blogname тоже сработает. При первом запуске WP-CLI среда Playground скачивает исполняемый файл WP-CLI, если он еще не установлен; последующие команды используют его повторно.

Вот несколько полезных команд, которые стоит попробовать. Выполняйте каждую строку отдельно:

wp core version
wp plugin list
wp post list --fields=ID,post_title,post_status
wp option get siteurl

Вы также можете создавать контент напрямую:

wp post create --post_title='Created from the Playground Terminal' --post_status=publish

В результате появится сообщение «Success: Created post» с указанием ID записи. Выполните команду wp post list —fields=ID,post_title,post_status, чтобы проверить заголовок и статус publish. Чтобы просмотреть запись в WordPress, закройте терминал, введите /wp-admin/edit.php в адресной строке в Dock и откройте запись на странице «Записи». Простого обновления приветственной страницы будет недостаточно для отображения новой записи. При каждом повторном выполнении create будет создаваться новая запись.

Настройка реальных сценариев тестирования

WP-CLI особенно полезен при подготовке тестового сайта перед проверкой результата в WordPress. Например, вы разрабатываете плагин или хотите посмотреть, как тема будет отображаться на экране определенного размера. Приведенные ниже примеры выполняются в чистой среде Playground, а для подготовки теста используется команда терминала.

Тестируем корзину и купон WooCommerce

Запустите Playground с активным плагином WooCommerce. Плагин добавляет собственные команды wp wc, а параметр —user=admin предоставляет им права, необходимые для управления данными магазина. Создайте опубликованный тестовый товар и купон со скидкой 10%, выполнив по отдельности следующие две команды:

wp wc product create --name="Playground Test Mug" --type=simple --status=publish --regular_price=19.99 --sku=playground-test-mug-01 --user=admin
wp wc shop_coupon create --code=PLAYGROUND10 --discount_type=percent --amount=10 --user=admin

Откройте магазин на сайте WordPress, добавьте товар Playground Test Mug в корзину, а затем примените код PLAYGROUND10 в поле для ввода купонов. В новой тестовой среде Playground товар отобразится с ценой $19.99, а купон снизит итоговую стоимость корзины до $17.99.

Эти команды создают тестовые данные; добавление товаров в корзину и применение купона по-прежнему выполняются в браузере. Информацию о других операциях в магазине можно найти в справочнике команд WooCommerce.

Подготовка записей для тестирования ядра или тем

Если для проверки возможности требуется более одной демонстрационной записи, создайте двенадцать опубликованных записей одной командой:

wp post generate --count=12 --post_type=post --post_status=publish

Сгенерированные посты появятся в разделе «Записи». В Playground они заполняют первую страницу блога и открывают доступ ко второй странице записей, предоставляя тестировщикам контент для проверки работы пагинации, сортировки, поиска и массовых действий. См. справочную информацию по генерации записей в WP-CLI.

Для проведения целенаправленного дымового тестирования блочного редактора создайте запись, содержащую сохраненную разметку блока Paragraph:

wp post create --post_title='Block smoke test' --post_status=publish --post_content='Block smoke test'

Используйте ID записи, полученный в результате выполнения команды, чтобы открыть страницу `/wp-admin/post.php?post=ID&action=edit`, заменив `ID` соответствующим числом. В редакторе тестовая запись откроется как блок Paragraph.

Инструмент для выполнения команд, а не полноценная оболочка

Встроенный терминал ориентирован на работу с PHP и WP-CLI. Это не универсальная командная оболочка, и она не предоставляет интерактивный TTY-интерфейс.

Все необходимые значения следует передавать непосредственно в составе команды WP-CLI. Команды, ожидающие интерактивного ввода, отклоняются; система не интерпретирует отсутствие ввода как пустую строку. Интерактивные команды длительного выполнения, такие как wp shell и wp server, не поддерживаются.

Такое ограничение делает выполнение команд в браузере более предсказуемым. Оно также предотвращает непредвиденные изменения в WordPress, которые могли бы возникнуть при неудачной попытке чтения из стандартного ввода. Аналогичный принцип немедленного завершения при ошибке теперь применяется и к шагу wp-cli в Blueprint, поэтому для команд Blueprint также необходимо явно указывать все требуемые аргументы.

Более быстрый путь от вопроса к ответу

Терминал заполняет пробел между навигацией по панели управления wp-admin и развертыванием локальной среды разработки. Разработчики плагинов могут проверять настройки или список активных плагинов непосредственно в процессе воспроизведения бага. Авторы документации и те, кто изучает платформу, могут запускать примеры PHP-кода для WordPress прямо в рабочем окружении. Контрибьюторы могут изучить тестовый сайт перед его экспортом или передачей Blueprint другим пользователям.

Терминал появился благодаря пул-реквесту #3808 («Добавление терминала в панель инструментов»), который стал продолжением более ранней инициативы по интеграции WP-CLI в Playground. Обновление панели инструментов (Dev Tools Dock) упростило управление этим растущим набором инструментов.

Дмитрий/ автор статьи
CCO, Senior SEM/PPC Specialist, WordPress-энтузиаст, переводчик с английского и немецкого. Серый кардинал русскоязычного WP-комьюнити.
Блог про WordPress
Добавить комментарий

Получать новые комментарии по электронной почте.