render_callback
Définition : render_callback est un paramètre PHP associé à un type de bloc dynamique. Sa fonction reçoit les informations de l’instance et retourne du HTML calculé au moment du rendu WordPress.
Comprendre et utiliser
À quoi cela sert ?
Elle permet d’afficher une information qui dépend du contenu actuel, des options du site ou du contexte de la requête, sans enregistrer un HTML définitif dans chaque publication.
Comment cela fonctionne ?
Le callback reçoit notamment les attributs du bloc, son contenu éventuel et l’objet WP_Block. Le code doit retourner du HTML approprié plutôt que déclencher une sortie incontrôlée.
Dans quel contexte l’utiliser ?
Employer cette option dans un plugin qui doit afficher des données toujours à jour, avec une stratégie de sécurité, d’échappement et de cache adaptée.
Cas concret : ATOOLPHA
Le bloc « Version affichée » peut présenter une valeur de configuration non sensible, sans demander aux rédacteurs de ressaisir cette valeur sur chaque page.
Exemple de code commenté
Extrait documentaire : le contexte WordPress du plugin/éditeur et les dépendances décrites sont nécessaires ; ne pas coller dans le contenu d’une page.
<?php
add_action( 'init', function () {
register_block_type( 'atoolpha/site-label', array(
'render_callback' => function ( $attributes ) {
$label = isset( $attributes['label'] )
? sanitize_text_field( $attributes['label'] )
: get_bloginfo( 'name' );
return '<p>' . esc_html( $label ) . '</p>';
},
) );
} );
Décryptage de l’exemple
Le rendu sélectionne soit l’attribut label soit le nom public du site. sanitize_text_field() prépare une chaîne simple et esc_html() protège le contexte HTML final.
Résultat attendu
Le bloc affiche le libellé au moment de la requête, sans conserver nécessairement ce paragraphe comme HTML statique dans l’article.
Atelier pratique de vérification
Créer un callback PHP recevant un attribut label, puis comparer sa sortie avec et sans cet attribut. Vérifier que le HTML retourné est échappé. Ajouter une source d’information dynamique de test et observer comment un cache peut masquer des changements. Ne jamais utiliser de données confidentielles dans cette démonstration.
Précautions et limites
Déclarer les attributs réellement acceptés et contrôler leurs types. Pour le contenu saisi par l’utilisateur, ne pas employer de données privées ou non filtrées dans une sortie publique.
Contrôle avant intégration dans un plugin
Avant livraison, tester les valeurs vides, les caractères spéciaux et les attributs inattendus. Mesurer l’incidence des appels externes et documenter comment le rendu reste utilisable lorsque sa source de données échoue.
À ne pas confondre
render_callback est une fonction de sortie côté PHP, pas la fonction save utilisée pour sérialiser le HTML d’un bloc statique.
Diagnostic et dépannage avancés
Si un bloc dynamique reste vide, journaliser les valeurs d’attribut de façon non sensible et vérifier le type enregistré avant d’incriminer le thème.
Notions associées
- Bloc dynamique
- render.php (bloc)
- render_block()
