J'ai utilisé le merveilleux mobile-detect dans mon en-tête de thèmes WordPress pendant un certain temps. Il va au-delà des requêtes de médias CSS et permet plus de flexibilité avec une construction réactive.WordPress Mobile Detect en tant que fonction body_class
Cependant, je veux maintenant ajouter des classes à la balise body en fonction de l'appareil. J'ai donc écrit une fonction qui devrait, en théorie, fonctionner. Quoi qu'il en soit, je reçois une classe de bureau indépendamment de l'appareil.
require_once(get_template_directory() . '/mobile-detect/Mobile_Detect.php'
);
$detect = new Mobile_Detect;
$mobile = $detect->isMobile();
$tablet = $detect->isTablet();
function device_body_class ($classes) {
if ($mobile) {
$classes[] = 'mobile';
if ($tablet) {
$classes[] = 'tablet';
} else {
$classes[] = 'phone';
}
} else {
$classes[] = 'desktop';
}
return $classes;
}
add_filter('body_class', 'device_body_class');
Toute aide serait grandement appréciée. Grands câlins maladroits de Cornwall, Royaume-Uni.
Je viens de le tester et il fonctionne exactement comme prévu. Merci beaucoup. Donc, les variables '$ mobile' et' $ tablet' devaient être à l'intérieur de la fonction, rétrospectivement, ce qui est parfaitement logique. Comment se fait-il que 'require_once' ne soit pas nécessaire? – morgyface
Bien que cela fonctionne pour vous, "require_once" inclut en fait le fichier où la classe "Mobile_Detect" est écrite. – Tristup