vendredi 25 septembre 2026

À propos

Contact

Lexique · Extensions & API WordPress

Enregistrement de bloc côté serveur

En anglais : « Server-side block registration »

Déclaration en PHP d'un bloc Gutenberg qui associe ses métadonnées à une fonction de rendu exécutée sur le serveur au moment de l'affichage.

Un bloc qui affiche les trois derniers articles ou une météo en temps réel ne peut pas se contenter de sauvegarder du HTML figé : son contenu doit être recalculé à chaque visite. C’est cette contrepartie côté serveur de l’enregistrement JavaScript qui rend cela possible.

Comment ça fonctionne

Depuis WordPress 5.8, la fonction register_block_type() peut lire directement un fichier block.json et y associer une fonction render_callback pour la partie dynamique :

register_block_type( __DIR__ . '/build', array(
  'render_callback' => 'afficher_bloc_meteo',
) );

function afficher_bloc_meteo( $attributs, $contenu ) {
  return '<p>Température actuelle : ' . esc_html( recuperer_temperature() ) . '</p>';
}

Quand un render_callback est fourni, WordPress ignore le contenu statique sauvegardé en base par l’éditeur et affiche systématiquement le résultat de cette fonction PHP à la place.

À ne pas confondre

  • Un bloc entièrement statique (comme un simple paragraphe) n’a besoin d’aucun enregistrement côté serveur : seul le fichier block.json et le code JavaScript suffisent.
  • Le fichier block.json doit rester la source de vérité des métadonnées (nom, catégorie, attributs) partagée entre PHP et JavaScript, plutôt que de dupliquer ces informations à deux endroits.
  • Le troisième argument reçu par la fonction de rendu est l’instance WP_Block, qui donne accès au contexte du bloc parent, utile par exemple dans une boucle de requête imbriquée.
  • Un bloc dynamique n’a généralement pas besoin de fonction save() côté JavaScript, ou alors une fonction qui retourne simplement null, puisque le contenu final vient toujours du PHP.