render.php (bloc)
Définition : render.php est un fichier PHP pouvant être référencé par la propriété render d’un block.json pour produire le contenu d’un bloc dynamique. Il sépare le rendu serveur des autres ressources.
Comprendre et utiliser
À quoi cela sert ?
Il rend le projet plus lisible : l’édition peut rester en JavaScript tandis que l’affichage public est décrit dans un fichier de template serveur identifié.
Comment cela fonctionne ?
Lorsqu’il est utilisé via les métadonnées, WordPress inclut ce fichier dans le contexte du rendu du bloc. Les attributs du bloc et l’objet WP_Block sont alors disponibles dans ce contexte.
Dans quel contexte l’utiliser ?
Pratique pour une extension dont plusieurs blocs dynamiques ont chacun une structure de sortie PHP et des traitements indépendants.
Cas concret : ATOOLPHA
Une carte ATOOLPHA possède un attribut title et une sortie PHP générant un titre échappé en front-end.
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
// Fichier render.php, utilisé via block.json.
$title = isset( $attributes['title'] )
? (string) $attributes['title']
: '';
echo '<section ' . get_block_wrapper_attributes() . '>';
echo '<h3>' . esc_html( $title ) . '</h3>';
echo '</section>';
Décryptage de l’exemple
$attributes correspond aux données passées lors du rendu. get_block_wrapper_attributes() retourne les attributs attendus pour l’enveloppe du bloc, notamment les styles/supports applicables.
Résultat attendu
Le fichier émet un élément section avec son titre échappé ; il ne doit être inclus que par l’infrastructure de rendu du bloc, avec les bonnes métadonnées.
Atelier pratique de vérification
Ajouter un render.php dans un dossier de bloc compilé, déclarer son chemin et afficher un attribut textuel échappé. Tester ensuite l’absence volontaire de l’attribut, puis une chaîne contenant des caractères HTML. Contrôler l’enveloppe rendue, les valeurs par défaut et la bonne application des classes supports.
Précautions et limites
Ne pas appeler render.php directement par URL. Il ne constitue pas un endpoint autonome. Contrôler le contexte d’exécution et ne pas utiliser de variables non garanties.
Contrôle avant intégration dans un plugin
Vérifier le packaging du render.php et la présence du fichier après déploiement. Les sorties doivent échapper les attributs et textes selon le contexte HTML, avec un traitement déterministe des paramètres absents.
À ne pas confondre
render.php est un fichier physique de rendu ; render_callback est une fonction PHP pouvant remplir le même rôle depuis l’enregistrement du bloc.
Diagnostic et dépannage avancés
Si le fichier est introuvable après déploiement, vérifier que le chemin render annoncé dans block.json correspond au dossier réellement livré et que les permissions de lecture autorisent le serveur à l’inclure.
Notions associées
- Bloc dynamique
- render_callback
- useBlockProps.save()
