Une étude notariale qui publie des ventes immobilières aux enchères n’a ni le budget ni le besoin d’un thème WordPress entièrement reconstruit. Ce qu’elle demande tient en une phrase : afficher la liste des biens en cours de vente, avec photo, mise à prix et date d’audience, quelque part sur une page existante du site, sans toucher au reste de la charte graphique.
Ce billet détaille comment répondre à ce besoin avec un type de contenu personnalisé et un bloc dynamique unique, plutôt qu’avec un thème sur mesure complet. La prise de rendez-vous en ligne pour visiter un bien, souvent demandée en parallèle, est traitée dans un autre article : elle ne fait pas partie du périmètre ici.
Cerner le vrai besoin avant de coder
La première réunion avec l’étude a permis d’écarter une fausse bonne idée : reconstruire tout le site autour d’un thème immobilier du commerce. L’étude tenait à conserver son thème actuel, ses pages de présentation des notaires et son formulaire de contact existant. Le vrai besoin se limitait à une seule zone d’affichage, insérable où bon leur semble par l’assistante qui gère le contenu.
Ce constat oriente directement le choix technique : un bloc dynamique, inséré librement dans n’importe quelle page, alimenté par un type de contenu personnalisé bien_immobilier, sans dépendance à un thème dédié.
Déclarer le type de contenu et ses champs
Le type de contenu se déclare classiquement avec register_post_type(), associé à quelques champs personnalisés simples : mise à prix, date d’audience, surface, référence du dossier.
register_post_type( 'bien_immobilier', array(
'label' => 'Biens immobiliers',
'public' => true,
'show_in_rest' => true,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'menu_icon' => 'dashicons-admin-home',
) );

Les champs spécifiques (mise à prix, date d’audience, surface) sont enregistrés via register_post_meta(), avec show_in_rest activé pour qu’ils restent accessibles depuis l’éditeur de blocs sans extension supplémentaire.
Le bloc dynamique côté rendu
Le bloc s’enregistre avec un render_callback qui interroge simplement les biens publiés et triés par date d’audience :
function afficher_biens_immobiliers( $attributs ) {
$biens = get_posts( array(
'post_type' => 'bien_immobilier',
'numberposts' => 20,
'meta_key' => 'date_audience',
'orderby' => 'meta_value',
'order' => 'ASC',
) );
ob_start();
foreach ( $biens as $bien ) {
printf(
'<article><h3>%s</h3><p>Mise à prix : %s €</p></article>',
esc_html( get_the_title( $bien ) ),
esc_html( get_post_meta( $bien->ID, 'mise_a_prix', true ) )
);
}
return ob_get_clean();
}
Ce fragment simplifié cache un détail important : les balises générées ici sont pensées pour le front, en dehors de la contrainte de balisage imposée aux articles de blog ; un bloc dynamique reste libre dans son render_callback, contrairement au contenu éditorial classique.
Un seul réglage utile dans l’éditeur
Le bloc n’expose qu’un seul attribut réglable : le nombre de biens à afficher. Pas de sélecteur de couleur, pas d’option de mise en page superflue. L’assistante qui insère le bloc n’a besoin de rien configurer d’autre pour obtenir un résultat correct.
- Un type de contenu dédié, distinct des articles de blog existants
- Un seul bloc, insérable sur n’importe quelle page du thème actuel
- Aucune dépendance à un thème immobilier du commerce
Ce que l’étude a gagné concrètement
Le développement complet a tenu en quatre jours, contre plusieurs semaines envisagées initialement pour un thème sur mesure. L’assistante publie désormais un nouveau bien en moins de cinq minutes, directement depuis l’écran d’édition classique de WordPress, sans notion de code ni de mise en page à maîtriser.
Face à une demande qui ressemble à « il nous faut un site immobilier », on commence toujours par vérifier si un bloc dynamique bien ciblé ne suffit pas largement, avant d’envisager un thème entier.
En résumé
Un bloc dynamique associé à un type de contenu personnalisé répond souvent mieux qu’un thème sur mesure à un besoin d’affichage circonscrit. L’étude notariale garde son thème, son identité visuelle et son organisation existante, tout en gagnant une fonctionnalité ciblée, rapide à développer et simple à faire évoluer.