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()

Références officielles

Bouton retour en haut de la page