プラグイン開発者のための Playground
WordPress Playground は、プラグイン開発者がブラウザ環境で直接プラグインを構築、テスト、紹介できる革新的なツールです。
このガイドでは、WordPress Playground を使用してプラグイン開発ワークフローを改善し、プラグインを紹介するライブデモを作成し、プラグインのテストとレビューを簡素化する方法を説明します。
WordPress Playground を使用して製品を構築、テスト、起動する方法については、Playground について セクションをご覧ください。
プラグインを使って Playground インスタンスを起動する
WordPress テーマディレクトリ内のプラグイン
WordPress Playground を使えば、WordPress プラグインディレクトリにあるほぼすべてのプラグインをインストール・有効化した WordPress 環境を素早く起動できます。Playground URL に plugin
クエリパラメータを追加し、 WordPress ディレクトリにあるプラグインのスラッグを値として指定するだけです。例:https://playground.wordpress.net/?plugin=create-block-theme
Playground インスタンスにインストールして有効化したいプラグインごとに、クエリパラメータを使って複数のプラグインをインストールして有効化できます。「plugin」パラメータを繰り返し指定することで実現できます。例:https://playground.wordpress.net/?plugin=gutenberg&plugin=akismet&plugin=wordpress-seo。
また、Playground インスタンスに渡される Blueprint の installPlugin
ステップ を設定することで、WordPress プラグイン ディレクトリから任意のプラグインをロードすることもできます。
{
"landingPage": "/wp-admin/plugins.php",
"login": true,
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "wordpress.org/plugins",
"slug": "gutenberg"
}
}
]
}
ブループリントは、いくつかの方法で Playground インスタンスに渡すことができます。
GitHub リポジトリのプラグイン
GitHub リポジトリに保存されているプラ グインは、ブループリントを介して Playground インスタンスに読み込むこともできます。
installPlugin
ブループリント ステップ の pluginData
プロパティを使用して、Playground インスタンスにロードするプラグインを含む .zip
ファイルの場所を指す url
リソース を定義できます。
CORS の問題を回避するために、Playground プロジェクトは GitHub プロキシ を提供します。これにより、プラグインを含むリポジトリ (またはリポジトリ内のフォルダー) から .zip
を生成できます。
GitHub プロキシ は、GitHub リポジトリからプラグインをロードするのに非常に便利なツールです。特定のブランチ、特定のディレクトリ、特定のコミット、または特定の PR からプラグインをロードできます。
たとえば、次の blueprint.json
は、https://github-proxy.com ツールを活用して GitHub リポジトリからプラグインをインストールします。
{
"landingPage": "/wp-admin/admin.php?page=add-media-from-third-party-service",
"login": true,
"steps": [
{
"step": "installPlugin",
"pluginData": {
"resource": "url",
"url": "https://github-proxy.com/proxy/?repo=wptrainingteam/devblog-dataviews-plugin"
}
}
]
}
GitHub のファイルまたは gist 内のコードからのプラグイン
writeFile
と activatePlugin
ステップを組み合わせることで、gist または GitHub 内のファイル に保存されたコードからオンザフライで構築されたプラグインを使用して WP Playground インスタンスを起動することもできます。
{
"landingPage": "/wp-admin/plugins.php",
"login": true,
"steps": [
{
"step": "login"
},
{
"step": "writeFile",
"path": "/wordpress/wp-content/plugins/cpt-books.php",
"data": {
"resource": "url",
"url": "https://raw.githubusercontent.com/WordPress/blueprints/trunk/blueprints/custom-post/books.php"
}
},
{
"step": "activatePlugin",
"pluginPath": "cpt-books.php"
}
]
}
ブループリントギャラリーの gist からプラグインをインストールの例では、gist のコードからプラグインをロードする方法を示しています。
ブループリントを使用してプラグインのデモを設定する
いくつかのプラグインを有効にした WordPress Playground インスタンスへのリンクを提供する場合、それらのプラグインを使って Playground インスタンスの初期設定をカスタマイズしたい場合もあるでしょう。Playground のBlueprintsを使えば、プラグインを読み込み/有効化し、 Playground インスタンスを設定できます。
Playground プロジェクトでは、ブループリントを操作するために、以下の便利なツールとリソースを提供しています。
- ブループリント ギャラリー では、WordPress Playground を使用して様々な設定で WordPress サイトを立ち上げる実際のコード例をご覧いただけます。
- WordPress Playground ステップ ライブラリ ツールは、ステップをドラッグまたはクリックして WordPress Playground のブループリントを作成するためのビジュアルインターフェースを提供します。独自のステップを作成することもできます。
- ブループリント ビルダー ツールを使用すると、ブループリントをオンラインで編集し、Playground インスタンスで直接実行できます。
ブループリントのプロパティと steps
を通じて、Playground インスタンスの初期セットアップを構成し、プラグインの魅力的な機能を紹介するために必要なコンテンツと構成をプラグインに提供することができます。
WordPress Playground を使った優れたデモでは、画像やその他のアセットを含む、プラグインとテーマのデフォルトコンテンツを読み込む必要がある場合があります。詳しくは、デモ用のコンテンツの提供ガイドをご覧ください。
plugins
プラグインが他のプラグインに依存している場合は、plugins
ショートカットを使用して、他の必要なプラグインと一緒にプラグインをインストールできます。
{
"landingPage": "/wp-admin/plugins.php",
"plugins": ["gutenberg", "sql-buddy", "create-block-theme"],
"login": true
}
landingPage
プラグインに設定ビューまたはオンボーディング ウィザードがある場合は、landingPage
ショートカットを使用して、読み込み時に Playground インスタンス内の任意のページに自動的にリダイレクトできます。
{
"landingPage": "/wp-admin/admin.php?page=my-custom-gutenberg-app",
"login": true,
"plugins": ["https://raw.githubusercontent.com/WordPress/block-development-examples/deploy/zips/data-basics-59c8f8.zip"]
}
writeFile
writeFile
ステップを使用すると、GitHub または Gist に保存されている *.php ファイルのコードを参照して、任意のプラグイン ファイルを即座に作成できます。
以下は、ロード時にコードが自動的に実行されるように mu-plugins
フォルダに配置された カスタム投稿タイプを生成するプラグイン の例です。
{
"landingPage": "/wp-admin/",
"login": true,
"steps": [
{
"step": "writeFile",
"path": "/wordpress/wp-content/mu-plugins/books.php",
"data": {
"resource": "url",
"url": "https://raw.githubusercontent.com/wordpress/blueprints/trunk/blueprints/custom-post/books.php"
}
}
]
}
プラグイン開発
Playground を使用したローカルプラグインの開発とテスト
ローカル開発環境のプラグイン フォルダーから、そのプラグインが読み込まれアクティブ化された Playground インスタンスをローカルにすばやく読み込むことができます。
お好みのコマンドライン プログラムを使用して、プラグインのルート ディレクトリから wp-now
コマンド を使用します。
Visual Studio Code IDE では、プラグインのルート ディレクトリで作業しているときに Visual Studio Code 拡張機能 を使用することもできます。
例えば:
git clone git@github.com:wptrainingteam/devblog-dataviews-plugin.git
cd devblog-dataviews-plugin
npx @wp-now/wp-now start
Playground インスタンスでローカルの変更を確認し、変更を GitHub リポジトリに直接 PR を作成します
Google Chrome を使用すると、Playground インスタンスをローカルプラグインのコードとプラグインの GitHub リポジトリと同期できます。この接続により、以下のことが可能になります。
- ローカルの変更をライブで( Playground インスタンスで)確認する
- 変更内容を GitHub リポジトリに PR として作成する
このワークフローの実際のデモを以下に示します。