• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab
CMS

WordPress, quelques codes utiles – Épisode 1

WordPress a cet avantage d’être facilement modifiable, modulable, customisable… à condition de savoir comment faire. Il existe de nombreux hooks, des fonctions par dizaines, si bien que, malgré une très bonne documentation, il est difficile de tout connaître. Voici quelques codes qui pourront vous changer la vie.

Ajouter les header et footer de votre site
dans la page de login

Vous trouvez la page de connexion moche ? Vous ne voulez pas recréer entièrement un template pour pouvoir la customiser, seulement pour rajouter vos header et footer ?

Rien de plus simple : la page de login fonctionne avec deux hooks pour ses propres header et footer. L’avantage, c’est qu’ils sont invisibles, vous pouvez donc rajouter les vôtres sans soucis :

add_action('login_head', 'get_header');
add_action('login_footer', 'get_footer');

Et voilà !

Appliquer un template aux descendants d’une page

L’utilisation des templates sur plusieurs pages est assez pratique, mais peut vite devenir ennuyeuse pour un utilisateur. Afin de gagner en temps et en ergonomie, je vous propose ici un petit code qui vous permettra d’appliquer un template aux descendants d’une page sans contraindre le futur administrateur à sélectionner le template pour ses nouvelles pages.

function templateByParents($template){
    if(is_page()){
        global $post;
        $parents = get_post_ancestors($post->ID);
        foreach($parents as $parent_id){
            $post_parent = get_post($parent_id);
            if($post_parent->post_name == 'page-parente'){
                $new_template = get_stylesheet_directory() . '/templates/template_enfant.php';
                return $new_template;
            }
        }
    }
    return $template;
}
add_filter('page_template', 'templateByParents', 99);

Que fait ce code ? Il intercepte le process de choix du template qui va s’afficher, à la toute fin de celui-ci, pour lui donner un autre chemin si la page courante est une descendante de la page ‘page-parente’.

C’est ici un parti-pris que d’utiliser le slug de la page parent plutôt que son ID. A mon sens, on maîtrise plus facilement le slug d’une page que son ID, mais l’utilisation de l’ID fonctionne également et raccourcit un peu le code.

Vous pouvez bien entendu décider de ne vérifier que le parent direct de la page courante. Auquel cas, sachez que le tableau résultant de get_post_ancestors commence toujours par le parent direct, et se termine par le parent le plus lointain. Si la page est à la racine, le tableau est vide.

Un petit conseil : pour ce genre de customisation, évitez d’appeler vos templates page-mon-custom ou content-mon-custom, pour ne pas confondre vos templates utilisant le fonctionnement natif de WordPress et ceux utilisant votre fonctionnement custom. Préférez aussi mettre vos templates dans un répertoire à part, histoire de ne pas trop charger la racine de votre thème 🙂

C’est tout pour ajourd’hui

Je vous retrouverai dans un prochain article pour d’autres petits codes bien utiles.

15/05/2014 17 MIN READ BY: Nicolas GUYOT 0 COMMENT
SHARE
LIRE LA SUITE

Nicolas GUYOT

Woocommerce : Ajouter des coûts administrables pour un produit

categorizr.js et la détection de supports

VOUS POURRIEZ AIMER

CMS Ne jouez plus avec le feu, jouez avec Drupal 8 !

CMS WordPress – Un formulaire de login custom en Ajax

CMS Les CMS et l’open source

CMS WordPress : Comment protéger son site en tant qu’utilisateur

CMS Et si on essayait un CMS en Go ?

Backend CMS Recette de l’internationalisation sur WordPress

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect