web-dev-qa-db-fra.com

Utilisation appropriée de wp_is_mobile ()?

J'ai développé le thème responsive et je veux le soumettre le wordpress.org. Avant de le soumettre, je souhaite utiliser wp_is_mobile() dans mon thème, mais selon Référence de la fonction/wp is mobile c'est un mauvaise idée parce que c'est dit ceci:

Vous devez savoir que cela ne détecte pas spécifiquement un téléphone portable, car une tablette est considérée comme un appareil mobile. Vérifiez la zone Plugins pour plusieurs alternatives utiles. Il ne faut pas non plus l'utiliser pour les thèmes.

Donc, si je l’utilise dans mon thème functions.php comme ceci:

add_filter('body_class','mobile_theme_body_class');     
function mobile_theme_body_class( $classes ){

    if ( wp_is_mobile() ){
        $classes[] = 'mobile';
    }
    else{
        $classes[] = 'desktop';
    }
    return $classes;
}

Mon thème sera-t-il rejeté?

Sous-question:

Si j'utilise ma fonction comme dans le code ci-dessus et que j'utilise Caching Plugins comme (WP Super Cache), ma fonction sera-t-elle gâchée (impossible d'exécuter ou de renvoyer de faux positifs)?

Merci pour votre temps et vos réponses ...

17
Dejo Dekic

En termes très peu profanes, wp_is_mobile() n'est pas conçu pour styliser votre thème.

Comment ça marche: Cela correspond au nom natif de l'appareil dans User Agent String. Donc, si quelqu'un manipule la chaîne et envoie de fausses informations, vous ne pouvez pas détecter le périphérique en question. Et il ne renvoie aucun nom de périphérique, mais simplement true si vous n'êtes pas sur le bureau sinon false

Comment WordPress l'utilise: WordPress ne l'utilise pas pour styler ou ajouter du CSS n'importe où. WordPress l’utilise pour ajouter ou manipuler des éléments qui ne doivent figurer que sur les appareils mobiles (quels que soient leur taille et leur nom). pour ajouter des scripts tactiles, ajoutez une fenêtre d'affichage, une classe mobile dans l'en-tête de l'administrateur, ajoutez des boutons pour mobiles.

Effet de la mise en cache : Si vous utilisez un plugin de mise en cache, il est inutile. Comme votre code n'est pas exécuté à chaque fois, vous obtenez le même résultat à chaque fois.

WordPress l'utilise principalement en back-end et presque tous les plugins de mise en cache excluent la mise en cache en back-end ou pour les utilisateurs connectés. Donc ça marche bien.

31
Sumit

wp_is_mobile() est lié à HTTP USER AGENT, ce n'est pas lié à la taille de l'écran

wp_is_mobile renvoie true ou false en fonction de $_SERVER['HTTP_USER_AGENT']

si $_SERVER['HTTP_USER_AGENT'] contient Mobile (Android, BlackBerry, etc.),

alors wp_is_mobile renvoie - true (détecté en tant que périphérique mobile), sinon il retournera false

un cas d'utilisation simple - pour créer un lien, essayez de naviguer vers une application mobile ou une page Web.

pour plus d'infos vérifier le code source de la fonction

1
bhv