WordPress : Styleswitcher ou themewitcher pour permettre à l’utilisateur de revenir à la vue standard à partir d’un appareil mobile

Publié par Jean-Michel le

J’ai créé une version mobile de mon site avec CSS, avec tous mes styles dans une seule feuille de style (utilisation @media only screen and (max-width: 480px), only screen and (max-device-width: 480px)pour définir les styles mobiles). Quand tout est dans une seule feuille de style, ça marche bien.

Mais je souhaite autoriser les utilisateurs à revenir à l’affichage standard même s’ils consultent le site à partir d’un appareil mobile. Je ne connais aucun moyen de permettre à l’utilisateur de remplacer le @media, il semble donc que j’ai deux options : (1) feuilles de style séparées plus script styleswitcher, ou (2) thèmes séparés plus themeswitcher .

Théoriquement, cela devrait être possible avec un stylewitcher, mais je n’arrive pas à comprendre comment faire en sorte qu’un stylewitcher remplace la déclaration de média dans l’en-tête, donc même lorsque je clique sur « revenir à la vue standard », il charge toujours le feuille de style mobile.

Alors j’ai commencé à chercher dans les sélecteurs de thèmes. Je souhaite détecter les utilisateurs mobiles et les diriger vers le thème mobile par défaut, tout en leur permettant de revenir en arrière s’ils le souhaitent.

C’est essentiellement ce que fait le plugin WP Mobile Pack, mais il a beaucoup de fonctionnalités supplémentaires dont je n’ai pas besoin, et j’ai lu des histoires d’horreur sur la façon dont il modifie la base de données. Je n’ai pas non plus besoin de tous les thèmes mobiles prédéfinis puisque j’ai déjà écrit le CSS dont j’ai besoin pour la version mobile.

Quelqu’un peut-il recommander une solution plus légère, comme un simple script themewitcher combiné à un plugin de détection mobile qui ne m’oblige pas à définir des requêtes multimédias dans l’en-tête ?

Solution n°1 trouvée

Vous pouvez utiliser le global $is_iphonepour déterminer si vous êtes sur un appareil mobile ou non. Ne vous souciez pas du nom. Il capture également d’autres appareils.

Solution n°2 trouvée

Ne serait-il pas suffisant de changer de mobile/de bureau via une variable $_SESSION, de faire en sorte que le « lien de basculement vers le bureau » inclue quelque chose comme ?switchtodesktop=1et que l’en-tête contienne quelque chose comme

session_start();
if ($_GET['switchtodesktop']) {
  $_SESSION['switchtodesktop'] = true;
}
$desktop = isset($_SESSION['switchtodesktop']);
[...]
if ($desktop) {
  // only desktop css without media queries
} else {
  // default stuff (media queries, like you have now ..)
}
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 *