web-dev-qa-db-fra.com

Façons de plusieurs modèles de page de garde.php qui peuvent être échangés?

Je souhaite essentiellement créer plusieurs modèles de front-page.php avec différentes boucles et dispositions, puis présenter une option dans le panneau d'administration pour sélectionner un modèle un jour et un autre modèle un autre jour.

Cela peut être fait, je suppose, en trompant Wordpress et en sélectionnant une page statique à afficher en tant que page de garde, puis en sélectionnant un modèle de page personnalisé à partir de l'écran de modification de page, qui n'est en réalité pas une page "statique", mais plutôt une page contenant une liste complète. loop - un des nombreux modèles de page personnalisés que aurait aurait été mes options de front-page.php.

Une autre solution consisterait à insérer toutes mes boucles et ma disposition personnalisée dans des instructions if dans le fichier one-page.php et à présenter des options faisant appel à l’une des instructions if à chaque fois. (Cela semble raisonnable - bien qu'un peu maladroit pour moi - mais j'ai l'impression que ce n'est pas si terrible et qu'il y a des problèmes, comme l'augmentation du temps de chargement.)

Y a-t-il des options qui me manquent? Ou peut-être des plugins qui font ça pour moi? Je dois avouer que je suis surpris de ne pas avoir trouvé de plug-in qui vous permette de sélectionner une liste de modèles à afficher en tant que page front-page.php/index.php sans avoir à recourir à la page statique bidouille - les variations de boucles et les dispositions de page d'accueil doivent être une requête commune.

5
Edmund Heaphy

Une solution consiste à utiliser un seul front-page.php, puis à utiliser get_template_part(), pour afficher un contenu différent en fonction du choix de l'utilisateur.

Code approximatif:

get_header();

$layout = get_option( 'front_page_layout', 'default' );
get_template_part( 'front-page', $layout );

get_footer();

Après cela, vous devez créer un fichier pour chaque mise en page. Ils doivent être appelés, par exemple:

  • front-page-one.php
  • front-page-two.php
  • front-page-three.php
  • front-page-default.php

Le dernier sera utilisé lorsque l’option n’est pas définie, par exemple. quand le thème est juste activé.

Bien sûr, vous avez besoin d’une page d’arrière-plan où les utilisateurs peuvent choisir le modèle et enregistrer l’option 'front_page_layout'.

N'ayant qu'un front-page.php, quiconque verra votre thème se rendra facilement compte sans avoir à regarder le code.

Une autre alternative consiste simplement à utiliser front-page.php pour contenir la présentation par défaut. Vous pouvez ensuite créer d'autres dispositions à l'aide de page templates .

/*
Template Name: Home Page Alternative One
*/

De cette manière, vos utilisateurs peuvent créer une page, lui attribuer l’un des modèles que vous avez créés et enfin définir cette page comme page de couverture dans Paramètres de lecture .

Après la première fois, pour modifier la mise en page de la page d'accueil, il suffit de modifier le modèle de page choisi comme page de couverture statique.

Cette deuxième option nécessite un peu plus de travail pour les utilisateurs, mais vous empêche de disposer d'une page de paramètres de thème dans laquelle définir l'option 'front_page_layout'.

5
gmazzap

Il n'y a qu'une seule option, celle des modèles de page. C’est ainsi que fonctionnent 99% des thèmes et ce à quoi sont habitués les utilisateurs et les implémenteurs de wordpress. Vous pouvez essayer d'être unique mais personne ne l'appréciera.

1
Mark Kaplun