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

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

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

SVG画像情報

WordPress Playgroundを使用して製品を構築テスト、および起動する方法をAbout Playgroundセクションで発見してください。

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

WordPressテーマディレクトリのプラグイン

WordPress Playgroundを使用すると、WordPressプラグインディレクトリにあるほぼすべてのプラグインをインストールしてアクティブ化した状態で、迅速にWordPressインストールを起動できます。必要なのは、Playground URLplugin クエリパラメータを追加し、WordPressディレクトリからプラグインのスラッグを値として使用することだけです。例えば: https://playground.wordpress.net/?plugin=create-block-theme

SVG Imagetip

複数のプラグインをインストールしてアクティブ化するには、インスタンス内でインストールしてアクティブ化したい各プラグインのためにpluginパラメータを繰り返すことで、クエリパラメータを使用できます。例えば: https://playground.wordpress.net/?plugin=gutenberg&plugin=akismet&plugin=wordpress-seo

また、BlueprintinstallPluginステップを設定することで、WordPressプラグインディレクトリから任意のプラグインをロードすることもできます。

  1. {
  2. "landingPage": "/wp-admin/plugins.php",
  3. "login": true,
  4. "steps": [
  5. {
  6. "step": "installPlugin",
  7. "pluginData": {
  8. "resource": "wordpress.org/plugins",
  9. "slug": "gutenberg"
  10. }
  11. }
  12. ]
  13. }

[

GitHub リポジトリのプラグイン

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

pluginData プロパティを使用して、Playground インスタンスでロードしたいプラグインを含む .zip ファイルの場所を指す url リソース を定義できます。

CORS の問題を回避するために、Playground プロジェクトは、プラグインを含むリポジトリ(またはリポジトリ内のフォルダ)から .zip を生成できる GitHub プロキシ を提供しています。

SVG画像情報

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

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

  1. {
  2. "landingPage": "/wp-admin/admin.php?page=add-media-from-third-party-service",
  3. "login": true,
  4. "steps": [
  5. {
  6. "step": "installPlugin",
  7. "pluginData": {
  8. "resource": "url",
  9. "url": "https://github-proxy.com/proxy/?repo=wptrainingteam/devblog-dataviews-plugin"
  10. }
  11. }
  12. ]
  13. }

[

GitHubのファイルまたはGistからのプラグイン

writeFileactivatePluginのステップを組み合わせることで、Gistに保存されたコードから動的に構築されたプラグインを使用してWP Playgroundインスタンスを起動することもできます。

  1. {
  2. "landingPage": "/wp-admin/plugins.php",
  3. "login": true,
  4. "steps": [
  5. {
  6. "step": "login"
  7. },
  8. {
  9. "step": "writeFile",
  10. "path": "/wordpress/wp-content/plugins/cpt-books.php",
  11. "data": {
  12. "resource": "url",
  13. "url": "https://raw.githubusercontent.com/WordPress/blueprints/trunk/blueprints/custom-post/books.php"
  14. }
  15. },
  16. {
  17. "step": "activatePlugin",
  18. "pluginPath": "cpt-books.php"
  19. }
  20. ]
  21. }


ブループリントを実行

SVG画像情報

https://playground.wordpress.net/builder/builder.html?blueprint-url=https://raw.githubusercontent.com/wordpress/blueprints/trunk/blueprints/install-plugin-from-gist/blueprint.json#%7B%22meta%22:%7B%22title%22:%22Install%20plugin%20from%20a%20gist%22,%22author%22:%22zieladam%22,%22description%22:%22Install%20and%20activate%20a%20WordPress%20plugin%20from%20a%20.php%20file%20stored%20in%20a%20gist.%22,%22categories%22:%5B%22plugins%22%5D%7D,%22landingPage%22:%22/wp-admin/plugins.php%22,%22preferredVersions%22:%7B%22wp%22:%22beta%22,%22php%22:%228.0%22%7D,%22steps%22:%5B%7B%22step%22:%22login%22%7D,%7B%22step%22:%22writeFile%22,%22path%22:%22/wordpress/wp-content/plugins/0-plugin.php%22,%22data%22:%7B%22resource%22:%22url%22,%22url%22:%22https://gist.githubusercontent.com/ndiego/456b74b243d86c97cda89264c68cbdee/raw/ff00cf25e6eebe4f5a4eaecff10286f71e65340b/block-hooks-demo.php%22%7D%7D,%7B%22step%22:%22activatePlugin%22,%22pluginName%22:%22Block%20Hooks%20Demo%22,%22pluginPath%22:%220-plugin.php%22%7D%5D%7DのGistからプラグインをインストールする例は、Gist内のコードからプラグインを読み込む方法を示しています。

ブループリントを使用したプラグインのデモ設定

いくつかのプラグインが有効化されたWordPress Playgroundインスタンスへのリンクを提供する場合、そのPlaygroundインスタンスの初期設定をこれらのプラグインを使用してカスタマイズしたい場合があります。Playgroundの[https://wordpress.github.io/wordpress-playground/blueprints/getting-started]を使用すると、プラグインを読み込んだり有効化したりし、Playgroundインスタンスを構成できます。

SVG Imagetip

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

プロパティとstepsを通じて、Playgroundインスタンスの初期設定を構成し、プラグインの魅力的な機能と機能を示すために必要なコンテンツと設定を提供できます。

SVG画像情報

WordPress Playgroundでの素晴らしいデモには、プラグインとテーマのデフォルトコンテンツ(画像やその他のアセットを含む)を読み込む必要があるかもしれません。詳細については、デモ用のコンテンツを提供するガイドを確認してください。

プラグイン

プラグインが他のプラグインに依存している場合、[plugins]のショートハンドを使用して、必要な他のプラグインと一緒に自分のプラグインをインストールできます。

  1. {
  2. "landingPage": "/wp-admin/plugins.php",
  3. "plugins": ["gutenberg", "sql-buddy", "create-block-theme"],
  4. "login": true
  5. }


ブループリントを実行

ランディングページ

プラグインに設定ビューやオンボーディングウィザードがある場合、[landingPage]のショートハンドを使用して、読み込み時にPlaygroundインスタンス内の任意のページに自動的にリダイレクトできます。

  1. {
  2. "landingPage": "/wp-admin/admin.php?page=my-custom-gutenberg-app",
  3. "login": true,
  4. "plugins": ["https://raw.githubusercontent.com/WordPress/block-development-examples/deploy/zips/data-basics-59c8f8.zip"]
  5. }


ブループリントを実行

ファイルの書き込み

writeFileステップを使用すると、GitHubまたはGistに保存された*.phpファイルからコードを参照して、動的に任意のプラグインファイルを作成できます。

これは、mu-pluginsフォルダーに配置され、読み込み時にコードが自動的に実行されるhttps://raw.githubusercontent.com/wordpress/blueprints/trunk/blueprints/custom-post/books.phpを生成するプラグインの例です:

  1. {
  2. "landingPage": "/wp-admin/",
  3. "login": true,
  4. "steps": [
  5. {
  6. "step": "writeFile",
  7. "path": "/wordpress/wp-content/mu-plugins/books.php",
  8. "data": {
  9. "resource": "url",
  10. "url": "https://raw.githubusercontent.com/wordpress/blueprints/trunk/blueprints/custom-post/books.php"
  11. }
  12. }
  13. ]
  14. }

プラグイン開発

Playgroundを使用したローカルプラグインの開発とテスト

ローカル開発環境のプラグインフォルダーから、プラグインが読み込まれ有効化されたPlaygroundインスタンスを迅速にローカルで読み込むことができます。

お好みのコマンドラインプログラムを使用して、プラグインのルートディレクトリから[wp-now]コマンドを使用します。

Visual Studio Code IDEを使用すると、プラグインのルートディレクトリで作業している間にVisual Studio Code拡張を使用することもできます。

例えば:

  1. git clone git@github.com:wptrainingteam/devblog-dataviews-plugin.git
  2. cd devblog-dataviews-plugin
  3. npx @wp-now/wp-now start

Playgroundインスタンスでのローカル変更を確認し、変更をGitHubリポジトリに直接PRとして作成する

Google Chromeを使用すると、PlaygroundインスタンスをローカルプラグインのコードとプラグインのGitHubリポジトリと同期できます。この接続を使用すると、

  • Playgroundインスタンスでローカル変更をライブで確認できます
  • 変更をGitHubリポジトリにPRとして作成できます

このワークフローのデモを少し紹介します:

SVG画像情報

詳細については、Playgroundについて > ビルド > ローカルフォルダーとPlaygroundインスタンスを同期し、GitHubプルリクエストを作成するを確認してください。