การใช้งานที่เหมาะสมของ wp_is_mobile ()?


18

ผมได้มีการพัฒนารูปแบบการตอบสนองและฉันต้องการที่จะส่งมันwordpress.org ก่อนที่จะส่งมันฉันต้องการที่จะใช้wp_is_mobile()ในชุดรูปแบบของฉัน แต่ตามการอ้างอิงฟังก์ชั่น / wp เป็นมือถือมันเป็นความคิดที่ดีเพราะมันพูดแบบนี้:

คุณควรตระหนักว่านี่ไม่ได้ตรวจพบโทรศัพท์มือถือโดยเฉพาะเนื่องจากแท็บเล็ตถือเป็นอุปกรณ์มือถือ ตรวจสอบพื้นที่ส่วนเสริมเพื่อดูตัวเลือกที่มีประโยชน์ มันไม่ควรใช้สำหรับธีม

ดังนั้นถ้าฉันใช้มันในฟังก์ชั่นธีมของฉัน PHP แบบนี้:

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

ธีมของฉันจะถูกปฏิเสธหรือไม่

Sub-คำถาม:

ถ้าฉันใช้ฟังก์ชั่นของฉันเหมือนในรหัสด้านบนและใช้ Caching Plugins like (WP Super Cache) ฟังก์ชั่นของฉันจะถูกทำให้ยุ่งเหยิง (ล้มเหลวในการรันหรือคืนค่าบวกเท็จ)

ขอบคุณสำหรับเวลาและคำตอบของคุณ ...


1
พวกเขากำลังพูดว่าเรามีฟังก์ชั่นนี้ แต่ไม่ได้ใช้เพราะมันไม่ดี - น่าขันอย่างที่สุด ฉันไม่รู้ว่าชุดรูปแบบของคุณจะปฏิเสธการใช้งานหรือไม่ แต่ถ้าเป็นเช่นนั้นก็จะเพิ่มประชดเป็นสูงสุด หลังจากทั้งหมดมันเป็นฟังก์ชั่น WP และไม่เลิกใช้
Nicolai

3
คำถามจริงคือทำไมคุณต้องการเพิ่มคลาสมือถือ / เดสก์ท็อป
TheDeadMedic

1
สิ่งที่ @TheDeadMedic พูดว่าเป็นความจริงคุณสามารถทำงานกับแบบสอบถามสื่อ CSSได้
Nicolai

1
wp_is_mobile()ไม่มีอะไรมากไปกว่าเรื่องตลกจริง ๆ และไม่น่าเชื่อถือจริงๆ มันอาศัยด้านผู้ใช้ซึ่งสามารถจัดการได้โดยผู้ใช้ปลายทาง คุณจำเป็นต้องรู้ว่าการทำงานของคุณจะล้มเหลวในกรณีมากกว่า 10% ดังนั้นผู้ใช้มือถือจำนวนมากจะถูกลบเนื้อหาบนเดสก์ท็อปไม่ว่าพวกเขาจะชอบหรือไม่ต้องการก็ตาม
Pieter Goosen

4
ดังนั้นมันอยู่ที่นั่นและมันดูดเหมือน query_posts ();
Dejo Dekic

คำตอบ:


31

ในระยะคนธรรมดามากwp_is_mobile()ไม่ได้มีไว้สำหรับการออกแบบธีมของคุณ

วิธีการทำงาน: มันตรงกับชื่อพื้นเมืองของอุปกรณ์ใน User Agent String ดังนั้นหากมีใครจัดการสตริงและส่งข้อมูลที่เป็นเท็จคุณไม่สามารถตรวจสอบว่ามันเป็นอุปกรณ์อะไร และจะไม่ส่งคืนชื่ออุปกรณ์ใด ๆ เพียงแค่ส่งคืนtrueหากคุณไม่ได้อยู่บนเดสก์ท็อปfalse

WordPress ใช้งานอย่างไร: WordPress ไม่ได้ใช้สำหรับการใส่สไตล์หรือเพิ่ม CSS ในทุกที่ WordPress ใช้เพื่อเพิ่มหรือจัดการสิ่งที่ควรจะอยู่บนอุปกรณ์มือถือเท่านั้น (ไม่ว่าจะมีขนาดและชื่ออะไรก็ตาม) เช่นการเพิ่มสคริปแบบสัมผัสเพิ่มวิวพอร์ตคลาสมือถือในส่วนหัวของผู้ดูแลระบบเพิ่มปุ่มมือถือ

ผลกระทบของการแคช : หากคุณใช้ปลั๊กอินแคชมันไม่มีประโยชน์ เนื่องจากรหัสของคุณไม่ได้ถูกเรียกใช้งานทุกครั้งดังนั้นคุณจะได้รับผลลัพธ์เดียวกันทุกครั้ง

WordPress ส่วนใหญ่ใช้ที่ back-end และปลั๊กอินการแคชเกือบทุกอันแยกการแคชที่ back-end หรือพูดสำหรับผู้ใช้ที่เข้าสู่ระบบ ดังนั้นจึงใช้งานได้ดี


1

wp_is_mobile()มีความเกี่ยวข้องกับHTTP USER AGENTไม่เกี่ยวข้องกับขนาดหน้าจอ

wp_is_mobile กลับจริงหรือเท็จขึ้นอยู่กับ $_SERVER['HTTP_USER_AGENT']

ถ้า$_SERVER['HTTP_USER_AGENT']มีมือถือ (Android หรือ BlackBerry หรืออื่น ๆ .. ),

จากนั้นwp_is_mobileส่งกลับ - จริง (ตรวจพบว่าเป็นอุปกรณ์พกพา) หากไม่ได้จะส่งคืนfalse

กรณีใช้งานง่าย - ในการสร้างลิงก์ลองไปที่ Mobile App หรือเว็บเพจ

สำหรับข้อมูลเพิ่มเติมฟังก์ชั่นการตรวจสอบซอร์สโค้ด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.