Ordnungsgemäße Verwendung von wp_is_mobile ()?

18

Ich habe ein responsives Theme entwickelt und möchte es auf wordpress.org einreichen . Bevor ich es abschicke, möchte ich es wp_is_mobile()in meinem Theme verwenden, aber laut Function Reference / wp is mobile ist es eine schlechte Idee, weil es folgendes sagt:

Sie sollten beachten, dass dies kein spezielles Mobiltelefon erkennt, da ein Tablet als mobiles Gerät betrachtet wird. Suchen Sie im Bereich Plugins nach hilfreichen Alternativen. Es sollte auch nicht für Themen verwendet werden.

Also, wenn ich es in meiner theme functions.php so benutze:

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;
}

Wird mein Thema abgelehnt?

Unterfrage:

Wenn ich meine Funktion wie im obigen Code verwende und Caching-Plugins wie (WP Super Cache) verwende, ist meine Funktion dann durcheinander (Fehler bei der Ausführung oder Rückgabe von False Positives)?

Vielen Dank für Ihre Zeit und Antworten ...

Dejo Dekic
quelle
1
Sie sagen, wir haben diese Funktion, benutzen sie aber nicht, weil sie nicht gut ist - wie ironisch. Ich weiß nicht, ob Ihr Thema für die Verwendung abgelehnt würde, aber wenn ja, dann würde es die Ironie auf ein Maximum erhöhen. Immerhin ist es eine WP-Funktion und nicht veraltet.
Nicolai
3
Die eigentliche Frage ist, warum Sie die Mobile / Desktop-Klasse hinzufügen möchten.
TheDeadMedic
1
Was @TheDeadMedic sagt, ist wahr, Sie können beispielsweise mit CSS-Medienabfragen arbeiten .
Nicolai
1
wp_is_mobile()ist eigentlich nichts weiter als ein Witz und ist wirklich unzuverlässig. Es beruht auf der Benutzerseite, die vom Endbenutzer manipuliert werden kann. Sie müssen wissen, dass Ihre Funktionalität in mehr als 10% der Fälle ausfällt, sodass eine große Menge mobiler Benutzer Desktop-Inhalte erhält, unabhängig davon, ob sie es mögen oder nicht
Pieter Goosen
4
Es ist also da und nervt genau wie query_posts ().
Dejo Dekic

Antworten:

31

In ganz laienhaften Worten wp_is_mobile()ist es nicht für das Styling Ihres Themas.

So funktioniert es: Es stimmt mit einigen Gerätenamen in User Agent String überein. Wenn also jemand die Zeichenfolge manipuliert und falsche Informationen sendet, kann er nicht erkennen, um welches Gerät es sich handelt. Und es wird kein Gerätename zurückgegeben, sondern nur, truewenn Sie sich nicht auf dem Desktop befindenfalse

Wie WordPress es benutzt: WordPress benutzt es nirgendwo zum Stylen oder Hinzufügen von CSS. WordPress verwendet es, um Dinge hinzuzufügen oder zu bearbeiten, die nur auf mobilen Geräten vorhanden sein sollten (unabhängig von Größe und Name). Zum Beispiel, um Touch-Skripte hinzuzufügen, ein Ansichtsfenster hinzuzufügen, eine mobile Klasse im Admin-Header, um mobile Schaltflächen hinzuzufügen.

Caching-Effekt : Wenn Sie das Caching-Plugin verwenden, ist es unbrauchbar. Da Ihr Code nicht jedes Mal ausgeführt wird, erhalten Sie jedes Mal das gleiche Ergebnis.

WordPress verwendet es meistens im Back-End und fast jedes Caching-Plugin schließt das Caching im Back-End oder etwa für eingeloggte Benutzer aus. So funktioniert es gut.

Sumit
quelle
1

wp_is_mobile()ist verwandt mit HTTP USER AGENT, es hängt nicht mit der Bildschirmgröße zusammen

wp_is_mobile Rückgabe true oder false basierend auf $_SERVER['HTTP_USER_AGENT']

ob $_SERVER['HTTP_USER_AGENT'] Mobile enthalten ist (Android oder BlackBerry usw.),

then wp_is_mobilereturn - true (als mobiles Gerät erkannt), andernfalls wird es zurückgegebenfalse

Ein einfacher Anwendungsfall: Um einen Link zu erstellen, navigieren Sie zu Mobile App oder zur Webseite.

für weitere Informationen Prüffunktion Quellcode

bhv
quelle