Le WordPress d'aujourd'hui, décodé pour les développeurs

Tips

Badge « visite virtuelle disponible » affiché seulement quand elle existe

Comment afficher un badge « visite virtuelle disponible » sur une fiche de bien immobilier uniquement lorsque le champ correspondant est réellement renseigné, sans toucher au lecteur de visite lui-même.

Par Clément Hadrot • 18 août 2025 • 4 min de lecture • Aucun commentaire
Badge « visite virtuelle disponible » affiché seulement quand elle existe

Comment éviter qu’un badge affiché sur toutes les fiches d’un catalogue immobilier ne devienne un mensonge visuel dès qu’un bien ne dispose pas de la fonctionnalité annoncée ? C’est la question que pose souvent la mise en avant d’options optionnelles : visite virtuelle, vidéo de présentation, dossier de diagnostic technique en ligne. Le badge doit apparaître uniquement quand la donnée existe, jamais par défaut.

La tentation la plus fréquente est d’afficher le badge partout puis de le masquer en CSS selon une classe conditionnelle posée côté template. Cette approche fonctionne, mais elle duplique la logique métier entre PHP et CSS, et elle affiche brièvement le badge avant que le style ne s’applique sur les connexions lentes. Autant traiter la condition une bonne fois côté PHP, à la source.

Le champ qui pilote l’affichage

Sur une fiche de type bien_immobilier, la visite virtuelle est en général stockée sous forme d’une URL dans un champ personnalisé, par exemple visite_virtuelle_url créé via l’API native register_post_meta() ou via un champ ACF. Le badge ne doit dépendre que d’une seule vérité : ce champ est-il renseigné avec une valeur exploitable ?

Écrire la condition une seule fois

Plutôt que de répéter la vérification à chaque endroit où le badge peut apparaître (fiche détaillée, carte dans une liste, résultat de recherche), il est plus sûr de centraliser la logique dans une fonction unique :

L'essentiel à retenir : Le badge dépend d'un seul champ booléen ou d'une URL renseignée ; Aucune modification du lecteur de visite virtuelle ; Réutilisable sur n'importe quel type de fiche produit
function wpm_bien_a_visite_virtuelle( $post_id ) {
    $url = get_post_meta( $post_id, 'visite_virtuelle_url', true );
    return ! empty( $url ) && filter_var( $url, FILTER_VALIDATE_URL );
}

Cette fonction retourne un booléen fiable, en s’assurant au passage que la valeur enregistrée est bien une URL valide et non une chaîne vide laissée par erreur lors de la saisie. Elle peut ensuite être appelée partout où le badge doit s’afficher :

if ( wpm_bien_a_visite_virtuelle( get_the_ID() ) ) {
    echo '<span class="badge-visite-virtuelle">Visite virtuelle disponible</span>';
}

Sur la carte d’une liste de résultats

Dans une boucle de recherche ou d’archive, la même fonction s’applique sans modification, avec l’identifiant du post courant transmis par la boucle WordPress :

while ( have_posts() ) :
    the_post();
    if ( wpm_bien_a_visite_virtuelle( get_the_ID() ) ) {
        echo '<span class="badge-visite-virtuelle">Visite 360°</span>';
    }
endwhile;

Variante avec un champ booléen plutôt qu’une URL

Si la visite virtuelle est hébergée sur un service externe et que seul un identifiant ou un statut d’activation est stocké côté WordPress, un champ booléen simple suffit :

  • Un champ true_false nommé visite_virtuelle_active côté ACF.
  • Une vérification get_field( 'visite_virtuelle_active' ) qui retourne directement un booléen exploitable.
  • Aucune validation d’URL nécessaire puisque le lien lui-même est géré ailleurs, par exemple dans l’intégration du lecteur de visite.

Éviter le badge sur un import en masse

Lorsque les fiches sont importées par lot depuis un logiciel de gestion immobilière, un champ vide peut parfois contenir la chaîne littérale "0" ou un espace insécable copié depuis un tableur. La fonction de vérification doit donc utiliser trim() avant de tester la valeur, afin d’éviter un badge affiché à tort sur une fiche sans visite réelle :

$url = trim( (string) get_post_meta( $post_id, 'visite_virtuelle_url', true ) );

Conseil maison : centralisez toujours la condition d’affichage d’un badge optionnel dans une seule fonction. Le jour où le nom du champ change, une seule ligne est à corriger plutôt que dix templates dispersés.

Ce que cette approche ne couvre pas

Cette technique ne vérifie pas que le lien de la visite virtuelle fonctionne réellement : une URL syntaxiquement valide peut pointer vers une ressource supprimée. Pour aller plus loin, une vérification périodique de disponibilité via une tâche planifiée pourrait compléter ce badge, mais elle sort du périmètre d’un simple affichage conditionnel et mérite un traitement dédié.

En résumé

Un badge conditionnel fiable repose sur une règle simple : une seule fonction, une seule source de vérité, appelée partout où le badge doit apparaître. Cette discipline évite les incohérences entre la fiche détaillée et les listes de résultats, et facilite grandement la maintenance le jour où la structure des champs évolue.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi