Utilizarea corectă a wp_is_mobile()?
Am dezvoltat o temă responsivă și vreau să o trimit pe wordpress.org. Înainte de a o trimite, vreau să folosesc wp_is_mobile()
în tema mea, dar conform Referinței Funcției/wp is mobile este o idee proastă deoarece spune următoarele:
Trebuie să înțelegi că aceasta nu detectează specific un telefon mobil, deoarece o tabletă este considerată tot un dispozitiv mobil. Verifică secțiunea de Plugin-uri pentru mai multe alternative utile. De asemenea, nu ar trebui folosită pentru teme.
Deci dacă o folosesc în functions.php al temei mele astfel:
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;
}
Tema mea va fi respinsă?
Sub-întrebare:
Dacă folosesc funcția mea ca în codul de mai sus și utilizez Plugin-uri de Cache (precum WP Super Cache), funcția mea va fi afectată (va eșua să se execute sau va returna rezultate false pozitive)?
Mulțumesc pentru timp și răspunsuri...

În termeni foarte simpli, wp_is_mobile()
nu este menită pentru stilizarea temei.
Cum funcționează:
Această funcție verifică dacă unele dintre numele native ale dispozitivului se regăsesc în șirul User Agent. Astfel, dacă cineva manipulează acest șir și trimite informații false, nu veți putea detecta corect dispozitivul.
De asemenea, funcția nu returnează numele dispozitivului, ci doar true
dacă nu sunteți pe desktop, altfel returnează false
.
Cum WordPress o folosește: WordPress nu o utilizează pentru stilizare sau adăugare de CSS. WordPress o folosește pentru a adăuga sau manipula elemente care ar trebui să apară doar pe dispozitive mobile (indiferent de dimensiune sau nume). De exemplu: adăugarea de scripturi pentru touch, adăugarea viewport-ului, clasa mobile în antetul admin, adăugarea de butoane mobile.
Efectul cache-ului: Dacă utilizați un plugin de cache, această funcție devine inutilă. Deoarece codul nu este executat de fiecare dată, veți obține același rezultat mereu.
WordPress o folosește în mare parte în back-end, iar aproape fiecare plugin de cache exclude cache-ul în back-end sau pentru utilizatorii autentificați. Astfel, funcționează corect în aceste cazuri.

wp_is_mobile()
detectează dispozitivul pe baza HTTP_USER_AGENT
(nu este legat de dimensiunea ecranului)
wp_is_mobile
returnează true sau false pe baza $_SERVER['HTTP_USER_AGENT']
dacă $_SERVER['HTTP_USER_AGENT']
conține Mobile (Android, IOS etc.) sau Tablet, returnează true
, altfel returnează false
dacă $_SERVER['HTTP_USER_AGENT']
este null, returnează false
pentru mai multe informații verifică codul sursă al funcției
