Saya mengalami masalah yang sangat mengganggu. Saya membangun situs web saya dengan pertanyaan media dan is_mobile (berpikir is_mobile akan sama dengan layar yang lebih kecil. Betapa bodohnya saya.) Tetapi setelah beberapa pengujian ternyata jenis iPad mengacaukannya (oke, sebenarnya saya lakukan).
Semua masalah saya dapat dengan mudah diselesaikan jika saya dapat mengecualikan iPad dari fungsi wp_is_mobile. Bagaimana cara saya menulis ulang fungsi itu?
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;
}
Bagaimana saya mengubahnya?
===
sementara saya seharusnya memeriksanya!==
- tidak tahu bagaimana itu terjadi, tapi sekarang saya memperbaikinya. Jadi, jawaban di atas seharusnya bekerja juga - yang saya sama sekali tidak mengatakan untuk membuat Anda menerimanya! Hanya saja, pada dasarnya, jawaban / fungsi kami melakukan hal yang sama - jadi saya hanya ingin menemukan (dan memperbaiki) apa yang salah.Anda juga dapat menggunakan kelas PHP Deteksi Seluler yang diperbarui secara berkala untuk membuat fungsi khusus untuk mendeteksi ponsel yang tidak termasuk tablet (dengan demikian iPad). Pada saat menulis jawaban ini, repo Github baru-baru ini diperbarui untuk menyertakan deteksi untuk tablet Samsung baru pada 3 bulan lalu.
Dengan asumsi Anda menempatkan file yang diperlukan dalam direktori yang disebut
/includes/
dalam tema Anda, maka Anda dapat menambahkan kode ini ke functions.php Andalalu gunakan fungsi
md_is_mobile()
sebagai penggantiwp_is_mobile()
.sumber
Saya tahu ini sudah lama, tetapi saya ingin memperbaruinya dengan cara WordPress yang tepat dalam mengimplementasikan solusi sebelumnya. Pada versi 4.9.0, daripada mengimplementasikan fungsi lain, mereka harus memfilter hasil wp_is_mobile (). Jadi:
NAMUN Apa yang seharusnya dilakukan adalah menggigit peluru dan menulis ulang tema agar berfungsi dengan baik di tablet. Ada / lebih banyak produsen tablet daripada Apple.
sumber
Saya telah menulis ulang (dan, menurut saya, dioptimalkan) fungsi Anda sedikit:// EDIT:
Oke, sekali lagi ...
Tulis fungsi baru yang secara internal menggunakan fungsi inti dan perluas :
Sekarang Anda dapat menggunakan
my_wp_is_mobile
fungsi baru Anda di mana saja Anda inginkan.sumber
functions.php
file Anda . Saya akan memperbarui jawaban saya dalam satu menit ...wp_is_mobile
...? Jadi, apa yang tidak berhasil (seperti yang ingin Anda lakukan)?if(!my_wp_is_mobile() )
bilah samping masih belum ditampilkan. Dari mana saya menyimpulkan bahwa fungsi tidak berfungsi.