web-dev-qa-db-fra.com

Existe-t-il un plugin qui désactive les autres plugins pour les navigateurs mobiles?

J'ai un site wordpress qui utilise un plugin pour fournir un lecteur de musique. Ce plugin utilise des cadres pour garder la musique en lecture pendant que l'utilisateur navigue sur le site.

Les appareils mobiles ont des problèmes avec cela à cause des cadres. Lorsque je désactive le plug-in, les appareils mobiles voient le site correctement.

Je souhaite désactiver ce plug-in pour quiconque consulte le site sur un appareil mobile.

Idéalement, je veux le faire sans écrire de code, en utilisant simplement quelque chose qui existe déjà.

Merci!

2
Mnebuerquo

Cette question est à la limite (le cas échéant) du domaine d'application de WPSE, conformément à la modification récemment apportée à FAQ .

Si vous le faites "avec du code", le plus simple serait d’employer requêtes de support css pour masquer le cadre (ou l’élément parent) par sa classe ou son id.

Par souci d’exhaustivité, il existe une WP fonction principale qui tente de rechercher des appareils mobiles - mais cette utilise le sniffing d’agent d’utilisateur et n’est donc pas confiance en ce qui concerne la fiabilité (l’une des rares fonctions principales à ne pas utiliser, à mon humble avis).

Également pour des raisons de complétude, il y a la fonction principale deactivate_plugins() . Il a également un compagnon, activate_plugins() . deactivate_plugins() _ possède un paramètre $silent (boolean), qui empêche les crochets de désactivation de se déclencher (les entrées de la base de données qui seraient sinon supprimées ne seront pas perdues). Par conséquent, vous pouvez exécuter l'une ou l'autre condition du périphérique sur lequel votre site est chargé, mais cela ne serait pas très efficace pour un autre et je ne saurais pas qu'il existe un moyen fiable de détecter le périphérique côté serveur.

Aussi qu'est-ce qu'un appareil mobile?
Plusieurs générations de smartphones, tablettes, netbooks, ordinateurs portables, ordinateurs de bureau, écrans de télévision et une grande variété de densités de pixels (l’écran "Retina" n’a pas été le premier à dépasser 96 ppp ...).
-> La taille de l'écran et la densité de pixels constituent le seul moyen fiable de concevoir des dispositifs différents. Et ce sont des informations que vous ne pouvez pas collecter côté serveur. Et puisque vous ne pouvez pas, vous ne pouvez pas désactiver les plugins basés sur celui-ci.

Nous voici donc soit en css, soit en js.
Quoi qu'il en soit, les requêtes des médias le sont.

1
Johannes Pille

Ne désactivez pas le plug-in, réécrivez-le pour ne charger que l'iframe sur des fenêtres larges. Voici un exemple de codemontrant comment procéder.

Comme l'a expliqué Johannes, il n'existe aucun moyen de détecter un appareil mobile côté serveur et certains appareils mobiles ont une résolution et une connexion Internet meilleures que d'autres appareils non considérés comme mobiles.

1
fuxia

Je suis à peu près sûr à 95% que WPTouch ou la version Pro de ce plugin vous permet de désactiver les plugins pour les utilisateurs mobiles. Mais je ne sais pas si cela vous permet SEULEMENT de désactiver les plugins et d'afficher votre site habituel ... ou s'il vous oblige à utiliser un thème pour mobile.

[modifier]
Lecture de la version gratuite de la documentation du plugin et du code:

Mode restreint
Empêchez les autres plugins de charger des scripts dans l'en-tête et le pied de page de WPtouch. Parfois, corrige les incompatibilités et accélère WPtouch.

Ce mode supprime wp_head() et wp_footer() lors de l’affichage de la versionmobile. Et cela bloquera le chargement des autres scripts, mais pas nécessairement tout le comportement du plugin.

0
Scott Hack