Dans le cadre d’un projet sur WordPress, mon client avait l’idée de faire un site qui se compose en deux arborescences bien distinctes :

  • Professionnel
  • Particulier

Quand nous sommes sur la partie professionnelle, la page d’accueil ainsi que le menu devait être câblée pour les professionnels.

Pour cela, j’ai dû trouver une petite fonction permettant de retourner l’ID de la page la plus haute dans l’arborescence pour savoir si l’on était sur particulier ou professionnel.

Mise en place

J’ai donc rajouté dans le fichier function.php du thème (/wp-content/themes/xxxx/function.php)

function isPro() {
    global $post;
    
    if ($post->post_parent) {
        $ancestror = get_post_ancestors( $post->ID );
        $root      = count( $ancestror ) - 1;
        $parent    = $ancestror[ $root ];
    } else {
        $parent = $post->ID;
    }
    
    return $parent;
}

Une autre alternative est de vérifier le slug de la page au lieu de l’ID et d’ajouter la classe au <body> pour y appliquer un style particulier.

function isPro() {
    global $post;
    
    if ($post->post_parent) {
        $ancestror = get_post_ancestors( $post->ID );
        $root      = count( $ancestror ) - 1;
        $parent    = $ancestror[ $root ];
        $slug      = get_post_field( 'post_name', $parent );

        if($slug === "professionel") {
          add_filter( 'body_class', function( $classes ) {
           return array_merge( $classes, array( 'is-pro' ) );
          } );
        }
    }
}

Commentaires

N'hésitez pas à me laisser un petit commentaire pour que l'on discute ensemble de cet article.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles reliés

Retrouvez ci-dessous quelques articles qui pourrait vous intéresser.

Maintenance WordPress sans plugin
11
Juil

Activer le mode maintenance de WordPress sans plugin

Nous allons voir comment mettre son site WordPress en maintenance directement depuis le FTP et sans utiliser des plugins. Je vois beaucoup de monde utiliser un plugin pour mettre en maintenance leur site, lors de leur mise à jour ou pendant les maintenances. Il n’y a pas forcément besoin d’utiliser un plugin pour faire ça,…

Voir plus
Serveur MySQL Réplication
16
Mar

Créer un serveur MySQL de réplication (slave) des données existantes

MySQL Master-Slave Replication est une procédure permettant de répliquer en temps réel les données d’un serveur MySQL vers un autre. Nous allons voir ensemble comment mettre cette combinaison en place. Nous ne sommes pas à l’abri d’un incident sur nos serveurs de production et cela même avec un backup journalier de nos bases de données. …

Voir plus