Sử dụng đúng cách wp_is_mobile ()?


18

Tôi đã phát triển chủ đề đáp ứng và tôi muốn gửi nó wordpress.org . Trước khi gửi nó, tôi muốn sử dụng wp_is_mobile()trong chủ đề của mình, nhưng theo Function Reference / wp là thiết bị di động thì đó là một ý tưởng tồi bởi vì nó nói rằng:

Bạn nên nhận ra rằng điều này không phát hiện ra điện thoại di động một cách cụ thể, vì máy tính bảng được coi là một thiết bị di động. Kiểm tra khu vực Plugins để biết một số lựa chọn thay thế hữu ích. Nó cũng không nên được sử dụng cho các chủ đề.

Vì vậy, nếu tôi sử dụng nó trong chức năng chủ đề của mình.php như thế này:

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

Chủ đề của tôi sẽ bị từ chối?

Câu hỏi phụ:

Nếu tôi sử dụng chức năng của mình như trong đoạn mã trên và sử dụng Bộ đệm ẩn như (WP Super Cache) thì chức năng của tôi sẽ bị rối (không thực hiện được hoặc trả về dương tính giả)?

Cảm ơn bạn đã dành thời gian và câu trả lời của bạn ...


1
Họ đang nói, chúng ta có chức năng này, nhưng đừng sử dụng nó, bởi vì nó không tốt - thật là mỉa mai. Tôi không biết liệu chủ đề của bạn có bị từ chối vì sử dụng nó hay không, nhưng nếu vậy, thì nó sẽ làm tăng sự mỉa mai đến mức tối đa. Sau tất cả, nó là một chức năng WP và không bị phản đối.
Nicolai

3
Câu hỏi thực sự là tại sao bạn muốn thêm lớp di động / máy tính để bàn?
TheDeadMote

1
Những gì @TheDeadMedic nói là đúng, bạn có thể làm việc với các truy vấn phương tiện CSS chẳng hạn.
Nicolai

1
wp_is_mobile()không có gì hơn một trò đùa thực sự và thực sự không đáng tin cậy. Nó phụ thuộc vào phía người dùng có thể bị thao túng bởi người dùng cuối. Bạn cần biết rằng chức năng của bạn sẽ thất bại trong hơn 10% trường hợp, do đó, một lượng lớn người dùng di động sẽ bị mất nội dung trên máy tính để bàn dù họ có thích hay không muốn
Pieter Goosen

4
Vì vậy, nó ở đó và được hút giống như query_posts ();
Dejo Dekic

Câu trả lời:


31

Trong thuật ngữ rất cư sĩ wp_is_mobile()không phải là để tạo kiểu cho chủ đề của bạn.

Cách thức hoạt động: Nó khớp với một số tên gốc của thiết bị trong Chuỗi tác nhân người dùng. Vì vậy, nếu ai đó thao túng chuỗi và gửi thông tin sai lệch, bạn không thể phát hiện ra đó là thiết bị gì. Và nó không trả về bất kỳ tên thiết bị nào mà nó chỉ trả về truenếu bạn không ở trên máy tính để bàn khácfalse

Cách WordPress sử dụng nó: WordPress không sử dụng nó để tạo kiểu hoặc thêm CSS ở bất cứ đâu. WordPress sử dụng nó để thêm hoặc thao tác điều chỉ nên có trên thiết bị di động (bất kể kích thước và tên.) Ví dụ: để thêm tập lệnh cảm ứng, thêm chế độ xem, lớp di động trong tiêu đề quản trị viên, thêm nút di động.

Tác dụng của bộ nhớ đệm : Nếu bạn sử dụng plugin bộ nhớ đệm thì vô dụng. Vì mã của bạn không được thực thi mỗi lần nên bạn nhận được cùng một kết quả mỗi lần.

WordPress chủ yếu sử dụng nó ở back-end và hầu như mọi plugin lưu trữ đều loại trừ bộ nhớ đệm ở back-end hoặc nói cho người dùng đã đăng nhập. Vì vậy, nó hoạt động tốt.


1

wp_is_mobile()có liên quan đến HTTP USER AGENT, nó không liên quan đến kích thước màn hình

wp_is_mobile trả về đúng hay sai dựa trên $_SERVER['HTTP_USER_AGENT']

nếu $_SERVER['HTTP_USER_AGENT']chứa Di động (Android hoặc BlackBerry, v.v.),

sau đó wp_is_mobiletrả về - true (được phát hiện dưới dạng thiết bị di động), nếu không thì nó sẽ trả vềfalse

trường hợp sử dụng đơn giản - để tạo liên kết, hãy thử điều hướng đến Ứng dụng di động hoặc trang Web.

để biết thêm thông tin kiểm tra mã nguồn chức năng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.