WordPress 6.7 Introduction d'une nouvelle fonctionnalité qui permet aux plugins d'augmenter l'enregistrement de leurs blocs.wp_register_block_metadata_collection()
notamment pour les plugins qui enregistrent plusieurs types de blocs.
Étendre les comportements de base de WordPress aux plugins
Depuis WordPress 6.1, WordPress Core a inclus un mécanisme pour améliorer la performance du chargement de tous les types de blocs intégrés : dans le cadre du processus de construction, les blocs individuels de typeblock.json
Le fichier sera analysé comme unblocs-json.php
qui renvoie toutes ses données sous forme de tableau.Améliore considérablement les performances en évitant d'avoir à effectuer de nombreuses opérations coûteuses sur le système de fichiers et le JSON à chaque requête de WordPress.de l'opération. Pour plus d'informations sur les modifications initiales, veuillez consulter le site web de la Commission européenne.#55005.
Cependant, ce mécanisme est mis en œuvre d'une manière qui ne s'applique qu'à WordPress Core lui-même. Jusqu'à présent, les plugins n'ont pas pu bénéficier des mêmes avantages. En particulier pour les plugins qui contiennent eux-mêmes de nombreux types de blocs, cela signifie effectivement une perte de performance. Cela changera dans WordPress 6.7.
Collection de métadonnées des blocs enregistrés
Le plugin enregistre maintenant de manière optionnelle PHP "liste d'éléments"qui contient toutes les métadonnées pour son type de bloc. Pour tout type de bloc enregistré, WordPress Core vérifiera désormais s'il existe un fichier manifeste qui couvre ce type de bloc, et si c'est le cas, il utilisera les données du fichier manifeste à la place du fichierblock.json
Lire et analyser directement les fichiers de type bloc.
Afin d'utiliser cette nouvelle fonctionnalité, les développeurs de plugins doivent utiliser le nouveau modulewp_register_block_metadata_collection()
qui prend deux arguments :
$path
: Chemin de base où se trouvent les fichiers de blocs de la collection.$manifeste
: Chemin d'accès au fichier manifeste de la collection.
tout le mondeblock.json
Les documents qui doivent faire partie de la collection doivent tous se trouver dans le dossier fourni.$path
situé dans son propre répertoire correspondant au nom du type de bloc (sans l'espace de noms du bloc).
prendre noteEnregistrement des blocs : L'enregistrement d'une collection de métadonnées de blocs ne remplace pas la nécessité d'enregistrer les types de blocs individuels. Il est toujours nécessaire d'appeler la fonctionregister_block_type()
peut-êtreregister_block_type_from_metadata()
. L'utilisation de cette nouvelle fonctionnalité est facultative pour améliorer les performances, mais il est fortement recommandé de l'utiliser, en particulier pour les plugins qui enregistrent plusieurs types de blocs.
Génération automatique de listes de collecte de métadonnées par bloc
Les développeurs de plugins sont responsables de la génération et de la maintenance des fichiers manifestes qu'ils enregistrent pour les collections de métadonnées des types de blocs du plugin. Afin de simplifier ce processus, la communauté a mis en place l'outilPaquet NPMLa mise en œuvre d'une nouvellecommandebuild-blocks-manifest
Cette commande a été publiée dans le cadre de la version 30.3.0.@wordpress/scripts
devraitwp-scripts build-blocks-manifest
La commande accepte deux paramètres :
--entrée
répertoire : répertoire dans lequel se trouve le type de bloc. La valeur par défaut est "build".--Sortie
: Chemin d'accès au fichier dans lequel est stocké le manifeste de la collection de métadonnées des blocs de construction. La valeur par défaut est "build/blocks-manifest.php".
En fait, les paramètres de cette commande sont équivalents aux paramètres de la commandewp_register_block_metadata_collection()
: :--entrée
Les paramètres sont équivalents aux paramètres$path
(math.) genre--Sortie
Les paramètres sont équivalents aux paramètres$manifeste
.
Exemple complet
Pour cet exemple, supposons que vous ayez unma-block-library
Plug-ins enregistrés pour 3 types de blocs :
my-block-library/pricing
my-block-library/services
my-block-library/testimonial
Le code source de ces types de blocs est implémenté dans le répertoire du pluginsrc
et plus particulièrement dans le catalogue suivant :
src/pricing
utiliser pourmy-block-library/pricing
Blocs.src/services
utiliser pourmy-block-library/services
Blocs.src/testimonial
utiliser pourmy-block-library/testimonial
Blocs.
En utilisant leswp-scripts build
le code sera intégré dans le fichierconstruire
et chaque type de bloc a le même sous-répertoire.
Après avoir exécuté la compilation, vous pouvez utiliser la nouvelle fonctionwp-scripts build-blocks-manifest
. Étant donné que le plugin utilise l'emplacement par défaut de son type de bloc, il n'est pas nécessaire de passer des paramètres à la commande. Exécutez simplement la commandewp-scripts build-blocks-manifest
Il s'agit deblock.json
Lire les métadonnées des trois blocs dans le catalogueconstruire
et les fusionner dans unbuild/blocks-manifest.php
Documentation.
Le fichier manifeste se présente comme suit :
array( /* Bloquer les métadonnées. */ ), 'testimonial' => array( /* Bloquer les métadonnées.
'testimonial' => array( /* Bloquer les métadonnées. */ ), 'testimonial' => array( /* Bloquer les métadonnées. */ )
).
À l'avenir, les deux mêmes commandes pourront être utilisées pour modifier le type de bloc et sa mise en œuvre :
wp-scripts build
wp-scripts build-blocks-manifest
Après avoir généré le fichier manifeste, vous pouvez maintenant enregistrer la collection de métadonnées de bloc, comme indiqué ci-dessous :
wp_register_block_metadata_collection(
wp_plugin_dir . '/my-block-library/build',
wp_plugin_dir . '/my-block-library/build/blocks-manifest.php'
) ;
Un dernier point important, n'oubliez pas d'enregistrer le type de bloc :
register_block_type_from_metadata( WP_PLUGIN_DIR . '/my-block-library/build/pricing' ).
register_block_type_from_metadata( WP_PLUGIN_DIR . '/my-block-library/build/services' ) ; register_block_type_from_metadata( WP_PLUGIN_DIR .
register_block_type_from_metadata( WP_PLUGIN_DIR . '/my-block-library/build/testimonial' ) ; register_block_type_from_metadata( WP_PLUGIN_DIR .
résumés
nouvelle fonctionnalitéwp_register_block_metadata_collection()
et son outil de soutien@wordpress/scripts
sont une combinaison puissante pour améliorer les performances des types de blocs d'enregistrement de plugins. Ils rendent le processus facile et simple, donc si les plugins enregistrent des types de blocs, envisagez d'incorporer cette approche dans votre flux de développement et votre base de code de plugin.