Références de ressources
Les « Resource References » vous permettent d’utiliser des fichiers externes dans les Blueprints.
Les étapes de Blueprint comme installPlugin ou
installTheme nécessitent l’emplacement de l’extension ou
du thème à installer.
Cet emplacement peut être défini comme une ressource URL du
fichier .zip contenant le thème ou l’extension. Il peut aussi être défini
comme une ressource wordpress.org/plugins ou
wordpress.org/themes pour les extensions/thèmes publiés
dans les répertoires officiels WordPress.
Les références de ressources suivantes sont disponibles :
URLReference
La ressource URLReference sert à référencer des fichiers stockés sur un
serveur distant. La ressource URLReference est définie comme suit :
type URLReference = {
resource: 'url';
url: string;
};
Pour utiliser la ressource URLReference, vous devez fournir l’URL du fichier.
Par exemple, pour référencer un fichier nommé "index.html" stocké sur un
serveur distant, vous pouvez créer une URLReference comme suit :
{
"resource": "url",
"url": "https://example.com/index.html"
}
La ressource url fonctionne avec des étapes de Blueprint comme
installPlugin ou installTheme.
Ces étapes nécessitent un ResourceType pour définir l’emplacement de
l’extension ou du thème à installer.
Avec "resource": "url", nous pouvons définir l’emplacement d’un .zip
contenant l’extension/le thème. Utilisez cette option pour des artifacts ZIP
construits hébergés sur une URL accessible publiquement qui ne nécessite pas
d’authentification, comme un asset de release. Les URL de téléchargement direct
d’artifacts CI peuvent fonctionner, mais elles sont souvent de courte durée ou
restreintes.
Pour du code source stocké dans un dépôt Git, préférez
git:directory. Cette
ressource peut récupérer un sous-répertoire de dépôt depuis une branche, une
étiquette ou un commit sans nécessiter d’archive ZIP.
Avant d’utiliser une ressource url, vérifiez que l’URL :
- Télécharge directement le fichier. Elle ne doit pas renvoyer une page HTML, un avertissement de redirection, une page de connexion, un aperçu de fichier de dépôt ni une page d’erreur de proxy.
- Est disponible sans cookies, authentification, VPN ni session temporaire de navigateur.
- Envoie des en-têtes CORS qui autorisent Playground à la récupérer.
- Pointe vers le type de fichier attendu.
installPluginetinstallThemenécessitent une archive ZIP d’extension ou de thème, sauf si vous utilisez un autre type de ressource. - Restera disponible. Les URL de tunnel temporaires, les assets de release en brouillon et les artifacts CI de courte durée peuvent expirer.
- Est une véritable archive ZIP lorsque l’étape attend un ZIP. Les téléchargements très petits signifient souvent que le serveur a renvoyé une page d’erreur HTML au lieu de l’archive.
Pour du code source GitHub, ne faites pas pointer url vers une page de dépôt
ou un ZIP généré depuis une branche lorsque vous pouvez utiliser
git:directory. Utilisez url pour des artifacts ZIP construits et
git:directory pour des répertoires de source.
GitDirectoryReference
La ressource GitDirectoryReference sert à référencer un répertoire dans un
dépôt Git. C’est utile lorsqu’une extension ou un thème se trouve dans un
sous-dossier d’un dépôt, ou lorsque vous voulez installer depuis une branche,
une étiquette ou un commit précis.
type GitDirectoryReference = {
resource: 'git:directory';
url: string; // Repository URL (https://, ssh git@..., etc.)
path?: string; // Optional subdirectory inside the repository
ref?: string; // Branch, tag, or commit SHA (defaults to HEAD)
refType?: 'branch' | 'tag' | 'commit'; // Hint for resolving the ref
'.git'?: boolean; // Experimental: include a .git directory with fetched metadata
};
Exemple :
{
"step": "installPlugin",
"pluginData": {
"resource": "git:directory",
"url": "https://github.com/WordPress/block-development-examples",
"ref": "HEAD",
"path": "plugins/data-basics-59c8f8"
},
"options": {
"activate": true,
"targetFolderName": "data-basics"
}
}
Notes :
- Lorsque vous utilisez un nom de branche ou d’étiquette pour
ref, vous devez indiquerrefType(par exemple"refType": "branch"). Sans cela, seulHEADest résolu de façon fiable. - Playground détecte automatiquement les fournisseurs comme GitHub et GitLab.
- Les URL de dépôt peuvent inclure ou omettre un suffixe final
.git. Les barres obliques finales supplémentaires sont ignorées. - Cette ressource gère les récupérations via proxy CORS et les sparse checkouts ; vous pouvez donc utiliser des URL qui pointent vers des sous-répertoires ou branches précis.
- Cette ressource peut être utilisée avec des étapes comme
installPluginetinstallTheme. - Définissez
".git": truepour inclure un dossier.gitcontenant les packfiles et les refs afin que les outils sensibles à Git puissent détecter le checkout. Cela reflète actuellement un clone superficiel de la ref sélectionnée. - Le nom du dossier est dérivé de l’URL par défaut (par exemple
https-github-com-WordPress-block-development-examples-HEAD-at-plugins-data-basics-59c8f8). Utilisezoptions.targetFolderNamedans l’étape pour le remplacer, comme dans l’exemple ci-dessus.
CoreThemeReference
La ressource CoreThemeReference sert à référencer les thèmes du cœur WordPress. La ressource CoreThemeReference est définie comme suit :
type CoreThemeReference = {
resource: 'wordpress.org/themes';
slug: string;
version?: string;
};
Pour utiliser la ressource CoreThemeReference, vous devez fournir le slug du thème. Par exemple, pour référencer le thème "Twenty Twenty-One", vous pouvez créer une CoreThemeReference comme suit :
{
"resource": "wordpress.org/themes",
"slug": "twentytwentyone"
}
CorePluginReference
La ressource CorePluginReference sert à référencer les extensions du cœur WordPress. La ressource CorePluginReference est définie comme suit :
type CorePluginReference = {
resource: 'wordpress.org/plugins';
slug: string;
version?: string;
};
Pour utiliser la ressource CorePluginReference, vous devez fournir le slug de l’extension. Par exemple, pour référencer l’extension "Akismet", vous pouvez créer une CorePluginReference comme suit :
{
"resource": "wordpress.org/plugins",
"slug": "akismet"
}
VFSReference
La ressource VFSReference sert à référencer des fichiers stockés dans un système de fichiers virtuel (VFS). Le VFS est un système de fichiers stocké en mémoire qui peut servir à stocker des fichiers ne faisant pas partie du système de fichiers du système d’exploitation. La ressource VFSReference est définie comme suit :
type VFSReference = {
resource: 'vfs';
path: string;
};
Pour utiliser la ressource VFSReference, vous devez fournir le chemin vers le fichier dans le VFS. Par exemple, pour référencer un fichier nommé "index.html" stocké à la racine du VFS, vous pouvez créer une VFSReference comme suit :
{
"resource": "vfs",
"path": "/index.html"
}
LiteralReference
La ressource LiteralReference sert à référencer des fichiers stockés comme littéraux dans le code. La ressource LiteralReference est définie comme suit :
type LiteralReference = {
resource: 'literal';
name: string;
contents: string | Uint8Array;
};
Pour utiliser la ressource LiteralReference, vous devez fournir le nom du fichier et son contenu. Par exemple, pour référencer un fichier nommé "index.html" qui contient le texte "Hello, World!", vous pouvez créer une LiteralReference comme suit :
{
"resource": "literal",
"name": "index.html",
"contents": "Hello, World!"
}
BundledReference
La ressource BundledReference sert à référencer des fichiers inclus avec le
Blueprint lui-même. C’est particulièrement utile pour créer des bundles de
Blueprint autonomes qui incluent toutes les ressources nécessaires. La ressource
BundledReference est définie comme suit :
type BundledReference = {
resource: 'bundled';
path: string;
};
Pour utiliser la ressource BundledReference, vous devez fournir le chemin
relatif vers le fichier dans le bundle. Par exemple, pour référencer un fichier
nommé "plugin.php" inclus avec le Blueprint, vous pouvez créer une
BundledReference comme suit :
{
"resource": "bundled",
"path": "plugin.php"
}
Les bundles de Blueprint peuvent être distribués dans différents formats, notamment :
- Des fichiers ZIP avec un fichier
blueprint.jsonau premier niveau. - Des répertoires contenant un fichier
blueprint.jsonet les ressources associées. - Des URL distantes où le Blueprint et ses ressources sont hébergés ensemble.
Pour plus d’informations sur les bundles de Blueprint, consultez la documentation des Blueprint Bundles.