テーマ開発者のためのプレイグラウンド

WordPressプレイグラウンドは、テーマ開発者がブラウザ環境で直接テーマを構築、テスト、展示できる革新的なツールです。

このガイドでは、WordPressプレイグラウンドを使用してテーマ開発のワークフローを改善し、テーマを展示するためのライブデモを作成し、テーマレビューのプロセスを簡素化する方法を示します。

SVG画像情報

ビルドテスト、およびローンチする方法をプレイグラウンドについてのセクションで発見してください。

テーマを使用してプレイグラウンドインスタンスを起動する

WordPressテーマディレクトリのテーマ

WordPressプレイグラウンドを使用すると、WordPressテーマディレクトリにある任意のテーマを使用して、迅速にWordPressインストールを起動できます。次のように、theme クエリパラメータプレイグラウンドURLに渡します: https://playground.wordpress.net/?theme=disco

また、プレイグラウンドインスタンスに渡されるブループリントinstallThemeステップを設定することで、WordPressテーマディレクトリから任意のテーマを読み込むこともできます。

  1. {
  2. "steps": [
  3. {
  4. "step": "installTheme",
  5. "themeData": {
  6. "resource": "wordpress.org/themes",
  7. "slug": "twentytwenty"
  8. },
  9. "options": {
  10. "activate": true,
  11. "importStarterContent": true
  12. }
  13. }
  14. ]
  15. }

[

GitHub リポジトリのテーマ

GitHub リポジトリに保存されたテーマは、Blueprints を使用して Playground インスタンスにロードすることもできます。

themeData プロパティでは、Playground インスタンスにロードしたいテーマを含む .zip ファイルの場所を指す url リソース を定義できます。

CORS の問題を避けるために、Playground プロジェクトは、リポジトリ(またはリポジトリ内のフォルダー)からテーマを生成するための GitHub プロキシ を提供しています。

SVG Imagetip

GitHub プロキシ は、特定のブランチ、特定のディレクトリ、特定のコミット、または特定の PR からテーマをロードできるため、GitHub リポジトリからテーマをロードするための非常に便利なツールです。

たとえば、次の blueprint.json は、https://github-proxy.com ツールを利用して GitHub リポジトリからテーマをインストールします:

  1. {
  2. "steps": [
  3. {
  4. "step": "installTheme",
  5. "themeData": {
  6. "resource": "url",
  7. "url": "https://github-proxy.com/proxy/?repo=Automattic/themes&branch=trunk&directory=assembler"
  8. },
  9. "options": {
  10. "activate": true
  11. }
  12. }
  13. ]
  14. }

[

Blueprintsを使用したデモテーマの設定

特定のテーマが有効化されたWordPress Playgroundインスタンスへのリンクを提供する際、そのテーマの初期設定をカスタマイズしたい場合があります。PlaygroundのBlueprintsを使用すると、テーマを読み込み、有効化し、設定することができます。

SVG Imagetip

Blueprintsを使用するためにPlaygroundプロジェクトが提供する便利なツールとリソースは次のとおりです:

  • Blueprints Galleryをチェックして、さまざまなセットアップでWordPressサイトを立ち上げるためにWordPress Playgroundを使用した実際のコード例を探ってみてください。
  • WordPress Playground Step Libraryツールは、ステップをドラッグまたはクリックしてWordPress Playgroundのためのブループリントを作成するための視覚的インターフェースを提供します。独自のステップを作成することもできます!
  • Blueprints builderツールを使用すると、オンラインでブループリントを編集し、Playgroundインスタンスで直接実行できます。

プロパティとstepsを使用して、Playgroundインスタンス内のテーマの初期設定を構成できます。

SVG画像情報

Playgroundを通じてテーマの良いデモを提供するために、テーマの機能を強調するデフォルトコンテンツで読み込むことを検討してください。詳細については、Providing content for your demoガイドを参照してください。

resetData

resetDataステップを使用すると、WordPressインストールのデフォルトコンテンツを削除して、自分のコンテンツをインポートできます。

  1. "steps": [
  2. ...,
  3. {
  4. "step": "resetData"
  5. },
  6. ...
  7. ]

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

[

writeFile

writeFile ステップを使用すると、指定されたパスにデータを書き込むことができます。このステップを使用して、Playground WordPress インスタンスの mu-plugins フォルダー内の PHP ファイルにカスタム PHP コードを書き込むことができます。これにより、WordPress インスタンスが読み込まれるときにコードが自動的に実行されます。このステップを通じてできることの一つは、Playground インスタンスのために美しいパーマリンクを有効にすることです:

  1. "steps": [
  2. ...,
  3. {
  4. "step": "writeFile",
  5. "path": "/wordpress/wp-content/mu-plugins/rewrite.php",
  6. "data": "<?php /* Use pretty permalinks */ add_action( 'after_setup_theme', function() { global $wp_rewrite; $wp_rewrite->set_permalink_structure('/%postname%/'); $wp_rewrite->flush_rules(); } );"
  7. },
  8. ...
  9. ]

[

updateUserMeta

updateUserMeta ステップを使用すると、任意のユーザーメタデータを更新できます。たとえば、任意の WordPress インストールのデフォルト admin ユーザーのメタデータを更新できます:

  1. "steps": [
  2. ...,
  3. {
  4. "step": "updateUserMeta",
  5. "meta": {
  6. "first_name": "John",
  7. "last_name": "Doe",
  8. "admin_color": "modern"
  9. },
  10. "userId": 1
  11. },
  12. ...
  13. ]

[

setSiteOptions

setSiteOptions ステップを使用すると、サイト名、説明、または投稿に使用するページなどの site options を設定できます。

  1. "steps": [
  2. ...,
  3. {
  4. "step": "setSiteOptions",
  5. "options": {
  6. "blogname": "Rich Tabor",
  7. "blogdescription": "Multidisciplinary maker specializing in the intersection of product, design and engineering. Making WordPress.",
  8. "show_on_front": "page",
  9. "page_on_front": 6,
  10. "page_for_posts": 2
  11. }
  12. },
  13. ...
  14. ]

[

プラグイン

plugins のショートハンドを使用すると、Playground インスタンスでテーマと共にインストールおよびアクティブ化したいプラグインのリストを設定できます。

  1. "plugins": ["todo-list-block", "markdown-comment-block"]

[

ログイン

login ショートハンドを使用すると、管理者ユーザーでログインした状態で Playground インスタンスを起動できます。

  1. "login": true,

[

テーマ開発

Playgroundを使用したローカルテーマの開発とテスト

ブロックテーマのコードのルートフォルダーから、そのテーマが読み込まれ、アクティブ化されたPlaygroundインスタンスをローカルで迅速にロードできます。これは、テーマディレクトリ内で、好みのコマンドラインプログラムからwp-nowコマンドを起動するか、Visual Code Studio拡張Visual Studio Code IDEから起動することで行えます。

例えば:

  1. git clone git@github.com:WordPress/community-themes.git
  2. cd community-themes/blue-note
  3. npx @wp-now/wp-now start

WordPress UIを使用してテーマを設計し、変更をプルリクエストとして保存する

PlaygroundインスタンスをGitHubリポジトリに接続し、Playgroundインスタンス内のWordPress UIを通じて行った変更を含むプルリクエストを作成できます。これは、Create Block Themeプラグインを活用しています。また、そのテーマに変更を加え、zipファイルとしてエクスポートすることもできます。

このワークフローを使用するには、PlaygroundインスタンスにCreate Block Themeプラグインがインストールされ、アクティブ化されている必要があります。

SVG Imagetip

詳細については、About Playground > Build > Save changes done on a Block Theme and create GitHub Pull Requestsを確認してください。