WordPress : Dispositions de thème d’affichage
J’ai fait beaucoup de recherches et je n’ai pas encore vraiment trouvé de réponse à cela. J’ai créé un thème qui a de nombreuses options de personnalisation. Pour ma index.php
page, j’ai différentes mises en page parmi lesquelles un utilisateur peut choisir. Grille, liste, etc.
J’ai vu des sites de démonstration de thèmes utiliser des liens de mise en page comme mysite.com/?home_layout=grid
par exemple. Comment est-ce accompli?
Vous recherchez toute information à ce sujet. Liens, tutoriels, autres questions. Tout ce qui pourrait m’aider.
Appréciez grandement l’aide.
Solution n°1 trouvée
Cela dépend vraiment de la manière dont vous avez implémenté cette fonctionnalité, mais je vais vous expliquer comment j’ai réussi à le faire pour mon propre thème.
Supposons que vous ayez développé une page d’options de thème pour votre thème et que vous obteniez la valeur de la mise en page de cette façon :
psyrix_get_theme_option( 'layout' );
Et la valeur renvoyée est une chaîne, par exemple ‘grid’. Il devrait y avoir une fonction qui choisit la partie de modèle appropriée à récupérer pour votre front-end. Vous pouvez utiliser un filtre à l’intérieur de cette fonction :
function choose_template_for_my_blog( ){
$layout = psyrix_get_theme_option( 'layout' );
$layout = apply_filters('psyrix_filter_layout', $excerpt);
}
Maintenant, vous pouvez créer un plugin simple et filtrer la mise en page en fonction des requêtes d’URL :
add_filter('psyrix_filter_layout','filter_demo_layouts',11,1);
function filter_demo_layouts( ){
if( isset( $_REQUEST['home_layout'] ) ){
return $_REQUEST['home_layout'];
}
}
De cette façon, lorsque vous essayez d’accéder à mysite.com/?home_layout=grid
, la grid
valeur sera transmise à votre choose_template_for_my_blog()
fonction, qui remplacera la mise en page.
Ceci est un exemple basique et simple de la façon d’utiliser ceci. Vous devez ajouter plus de filtres et nettoyer l’entrée de l’utilisateur avant de passer à l’état publié.
Solution n°2 trouvée
J’ai utilisé le multisite pour faire quelque chose de similaire (afficher plusieurs thèmes). https://codex.wordpress.org/Create_A_Network
0 commentaire