web-dev-qa-db-fra.com

Est-il possible de définir un modèle de page sur une page d'accueil dynamique (liste d'articles)?

Lorsque nous créons ou modifions une page, nous pouvons souvent définir un modèle de page en fonction du thème utilisé. Disons que nous avons un modèle "par défaut" et un modèle "avec barre latérale".

Ma page d'accueil contient la liste des derniers articles, comme pour les paramètres par défaut de Wordpress. Ce n'est pas défini comme une page statique.

Est-il possible de définir le modèle "avec barre latérale" sur cette page?

1
Gaston Flanchard

La hiérarchie de modèles comporte un ensemble de filtres permettant de modifier le modèle chargé pour chaque type de requête. Dans ce cas, vous pouvez utiliser home_template.

Vous devrez travailler à la mise en place de votre propre interface pour choisir un modèle, via l’API Theme Mods/Customizer, ou de nombreux plug-ins permettant de créer des pages d’options de thèmes.

Dans cet exemple, nous raccordons home_template et recherchons une option nommée wpd_home_template_shows_sidebar, puis chargeons le modèle with-sidebar.php s'il existe. Notez que nous avons return le $template transmis à la fonction dans les deux cas.

function wpd_home_template( $template ) {
    if( get_option( 'wpd_home_template_shows_sidebar' ) ){
        $template = locate_template( 'with-sidebar.php' );
    }
    return $template;
}
add_filter( 'home_template', 'wpd_home_template' );
1
Milo