WordPress : Dispositions de thème d’affichage

Publié par Jean-Michel le

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.phppage, 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=gridpar 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 gridvaleur 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

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

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