WordPress : Plusieurs sous-répertoires pour les pages de modèles de thème

Publié par Jean-Michel le

Je m’excuse si cette question a déjà été répondue, j’ai l’impression que je n’utilise pas la bonne terminologie pour ma recherche.

Je suis en train de créer un thème de base pour mon employeur. L’une des choses que nous voulons faire avec ce nouveau thème est d’avoir la possibilité de passer d’un modèle standard à un autre qui a été Zurbifié. La façon dont je préfère gérer cela est d’avoir une case à cocher du panneau d’administration.

Dans le thème lui-même, nous voulons avoir 2 dossiers séparés qui contiennent les fichiers de modèle de thème réels (Ex : theme_folder/normal/page.php || theme_folder/zurb/page.php).

Comment pourrais-je traiter correctement cela ? Existe-t-il un crochet/filtre qui vous permet de spécifier le sous-dossier à utiliser dans une situation spécifique ? D’après ce que j’ai lu, il est possible que les sous-répertoires abritent les fichiers de page de modèle,
http://nacin.com/2012/03/29/page-templates-in-subdirectories-new-in-wordpress-3-4/
, mais je ne trouve pas l’appel dont j’ai besoin pour dire à WordPress d’utiliser les sous-titres spécifiques.

Solution n°1 trouvée

Si je vous comprends bien, vous voulez avoir un thème et juste quelques conditions pour charger différents modèles basés sur une case à cocher.

L’article auquel vous avez lié ne traite que des pagemodèles et ne s’applique pas à tous les autres fichiers de modèles de l’écosystème WordPress, par exemple pour les publications ou les catégories (bien que vous puissiez également ajouter cette fonctionnalité aux publications avec un peu de codage).

Si vous souhaitez appliquer une technique qui traite de tous les modèles WordPress, il est probablement préférable d’utiliser get_template_partet d’avoir la version « zurb » comme sous-dossier dans le thème par défaut. Ensuite, vous pouvez utiliser des conditions pour charger ce que vous voulez.

Si vous ne parlez que de pagemodèles, WordPress analyse automatiquement le répertoire du thème, y compris les sous-dossiers, donc tant que vous structurez l’en-tête du modèle, il le trouvera, cela inclut les thèmes enfants.

tl;dr vous n’avez rien d’autre à faire que d’avoir l’en-tête requis

Par exemple

<?php
/*
Template Name: Snarfer
*/
?>

Bien sûr, s’il y a beaucoup de fichiers à analyser et de sous-répertoires, vous subirez un coup dur.

Sachez également que :

Renommer un modèle de page – et cela inclut le déplacement de tous les modèles de page de niveau supérieur dans un répertoire – désaffectera ce modèle de page pour toutes les pages qui l’utilisent actuellement. Ceci est un nouvel outil dans votre boîte à outils, mais utilisez-le à bon escient
-Nacin

Solution n°2 trouvée

Lorsque je souhaite modifier une partie spécifique du modèle, telle que l’en-tête OU le pied de page, j’utilise des conditions telles que celle-ci –

if(is_404()) {
    get_header(`error`);    //loads header-error.php
} else {
    get_header();           //loads header.php
}

Dans votre cas, vous souhaitez charger un modèle complètement différent. Maintenant, le seul crochet d’action que je peux imaginer est – template_redirect, qui peut être utilisé pour dire à wordpress de charger un modèle différent selon les conditions.

Exemple –

function wpse62337_zurbified() {
    if ( CONDITION ) {
        include (TEMPLATEPATH . '/zurb/page.php');
        exit;
    }
}
 
add_action('template_redirect', 'wpse62337_zurbified');
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

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