Ich habe ein sehr nerviges Problem. Ich habe meine Website mit Medienabfragen und is_mobile erstellt (ich denke, is_mobile wäre dasselbe wie kleinere Bildschirme. Wie dumm von mir.), Aber nach einigen Tests hat das iPad es anscheinend irgendwie vermasselt (okay, eigentlich habe ich es getan).
Alle meine Probleme könnten leicht gelöst werden, wenn ich ein iPad von der Funktion wp_is_mobile ausschließen könnte. Wie schreibe ich diese Funktion um?
function wp_is_mobile() {
static $is_mobile;
if ( isset($is_mobile) )
return $is_mobile;
if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
$is_mobile = false;
} elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.)
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false ) {
$is_mobile = true;
} else {
$is_mobile = false;
}
return $is_mobile;
}
Wie würde ich das ändern?
===
während ich!==
stattdessen hätte nachsehen sollen - keine Ahnung, wie das passiert ist, aber jetzt habe ich das behoben. Die obige Antwort sollte also auch funktionieren - was ich absolut nicht sage, damit Sie sie akzeptieren! Es ist nur so, dass unsere Antworten / Funktionen im Wesentlichen dasselbe tun - also wollte ich nur herausfinden (und beheben), was falsch war.Sie können auch die regelmäßig aktualisierte PHP-Klasse von Mobile Detect verwenden , um eine benutzerdefinierte Funktion zum Erkennen von Mobiltelefonen ohne Tablets (also iPads) zu erstellen. Zum Zeitpunkt des Schreibens dieser Antwort war das Github-Repo zuletzt aktualisiert worden, um die Erkennung neuer Samsung-Tablets vor 3 Monaten einzuschließen.
Angenommen, Sie platzieren die erforderliche Datei in einem Verzeichnis, das
/includes/
in Ihrem Thema aufgerufen wird , und können diesen Code zu Ihrer functions.php hinzufügenVerwenden Sie dann die Funktion
md_is_mobile()
als Ersatz fürwp_is_mobile()
.quelle
Ich weiß, dass dies alt ist, aber ich wollte es mit der richtigen WordPress-Methode zur Implementierung der vorherigen Lösungen aktualisieren. Ab Version 4.9.0 sollten sie das Ergebnis von wp_is_mobile () filtern, anstatt eine andere Funktion zu implementieren. Somit:
Was jedoch wirklich hätte getan werden sollen, war, in die Kugel zu beißen und das Thema neu zu schreiben, damit es auf Tablets richtig funktioniert. Es gab / gibt mehr Tablet-Hersteller als Apple.
quelle
Ich habe Ihre Funktion ein wenig umgeschrieben (und meiner Meinung nach optimiert):// BEARBEITEN:
Okay, noch einmal ...
Schreiben Sie eine neue Funktion, die intern die Kernfunktion verwendet, und erweitern Sie sie:
Jetzt können Sie Ihre neue
my_wp_is_mobile
Funktion überall verwenden.quelle
functions.php
Datei einfügen. Ich werde meine Antwort in einer Minute aktualisieren ...wp_is_mobile
...? Also, was funktioniert nicht (wie Sie es gerne tun würden)?if(!my_wp_is_mobile() )
die Seitenleiste , obwohl ich sie verwendet habe, immer noch nicht angezeigt wird. Daraus ziehe ich ab, dass die Funktion nicht funktioniert.