Penggunaan wp_is_mobile () dengan benar?

18

Saya telah mengembangkan tema responsif dan saya ingin mengirimkannya ke wordpress.org . Sebelum mengirimkannya, saya ingin menggunakan wp_is_mobile()dalam tema saya, tetapi menurut Referensi Fungsi / wp adalah ponsel itu adalah ide yang buruk karena mengatakan ini:

Anda harus menyadari bahwa ini tidak mendeteksi ponsel secara khusus, karena tablet dianggap sebagai perangkat seluler. Periksa area Plugins untuk beberapa alternatif yang bermanfaat. Itu juga tidak boleh digunakan untuk tema.

Jadi jika saya menggunakannya di functions.php tema saya seperti ini:

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

Apakah tema saya akan ditolak?

Sub-pertanyaan:

Jika saya menggunakan fungsi saya seperti pada kode di atas dan menggunakan Caching Plugins like (WP Super Cache) apakah fungsi saya akan kacau (gagal menjalankan atau mengembalikan false positive)?

Terima kasih atas waktu dan jawaban Anda ...

Dejo Dekic
sumber
1
Mereka mengatakan, kami memiliki fungsi ini, tetapi jangan menggunakannya, karena itu tidak baik - betapa ironisnya. Saya tidak tahu apakah tema Anda akan ditolak untuk menggunakannya, tetapi jika demikian, maka itu akan meningkatkan ironi secara maksimal. Lagi pula itu adalah fungsi WP dan tidak usang.
Nicolai
3
Pertanyaan sebenarnya adalah mengapa Anda ingin menambahkan kelas seluler / desktop?
TheDeadMedic
1
Apa yang dikatakan @TheDeadMedic benar, Anda dapat bekerja dengan kueri media CSS misalnya.
Nicolai
1
wp_is_mobile()tidak lebih dari lelucon dan benar-benar tidak dapat diandalkan. Itu bergantung pada sisi pengguna yang dapat dimanipulasi oleh pengguna akhir. Anda perlu tahu bahwa fungsionalitas Anda akan gagal di lebih dari 10% kasus, sehingga sejumlah besar pengguna seluler akan dihujani konten desktop apakah mereka menyukainya atau tidak menginginkannya
Pieter Goosen
4
Jadi itu ada dan menyebalkan seperti query_posts ();
Dejo Dekic

Jawaban:

31

Dalam istilah yang sangat awam wp_is_mobile()bukan untuk menata tema Anda.

Cara kerjanya: Ini cocok dengan beberapa nama asli perangkat di String Agen Pengguna. Jadi, jika seseorang memanipulasi string dan mengirim informasi palsu, Anda tidak dapat mendeteksi perangkat apa itu. Dan itu tidak mengembalikan nama perangkat apa pun itu hanya kembali truejika Anda tidak pada desktop yang lainfalse

Bagaimana WordPress menggunakannya: WordPress tidak menggunakannya untuk menata atau menambahkan CSS di mana saja. WordPress menggunakannya untuk menambah atau memanipulasi hal yang seharusnya hanya pada perangkat seluler (berapapun ukuran dan namanya). Mis. Untuk menambahkan skrip sentuh, tambahkan viewport, kelas seluler di header admin, tambahkan tombol seluler.

Efek caching : Jika Anda menggunakan plugin caching itu tidak berguna. Karena kode Anda tidak dieksekusi setiap kali sehingga Anda mendapatkan hasil yang sama setiap kali.

WordPress sebagian besar menggunakannya di back-end dan hampir setiap plugin caching mengecualikan caching di back-end atau mengatakan untuk pengguna yang login. Jadi itu berfungsi dengan baik.

Sumit
sumber
1

wp_is_mobile()terkait dengan HTTP USER AGENT, itu tidak terkait dengan ukuran layar

wp_is_mobile mengembalikan benar atau salah berdasarkan $_SERVER['HTTP_USER_AGENT']

jika $_SERVER['HTTP_USER_AGENT']mengandung Ponsel (Android atau BlackBerry atau lebih ..),

lalu wp_is_mobilemengembalikan - true (terdeteksi sebagai perangkat seluler), jika tidak maka akan kembalifalse

case use sederhana - untuk membuat tautan, cobalah menavigasi ke Aplikasi Seluler atau halaman Web.

untuk info lebih lanjut periksa kode sumber fungsi

bhv
sumber