Uso corretto di wp_is_mobile()?
Ho sviluppato un tema responsive e voglio inviarlo a wordpress.org. Prima di inviarlo voglio utilizzare wp_is_mobile()
nel mio tema, ma secondo la Documentazione di Riferimento/wp is mobile è una cattiva idea perché dice questo:
Dovresti sapere che questo non rileva specificamente un telefono cellulare, poiché un tablet è considerato un dispositivo mobile. Controlla l'area Plugin per diverse alternative utili. Inoltre non dovrebbe essere utilizzato per i temi.
Quindi se lo uso nel mio functions.php del tema in questo modo:
add_filter('body_class','mobile_theme_body_class');
function mobile_theme_body_class( $classes ){
// Controlla se il dispositivo è mobile
if ( wp_is_mobile() ){
$classes[] = 'mobile';
}
else{
$classes[] = 'desktop';
}
return $classes;
}
Il mio tema verrà rifiutato?
Domanda secondaria:
Se uso la mia funzione come nel codice sopra e utilizzo Plugin di Caching come (WP Super Cache), la mia funzione sarà compromessa (fallirà nell'esecuzione o restituirà falsi positivi)?
Grazie per il vostro tempo e le vostre risposte...

In termini molto semplici, wp_is_mobile()
non serve per lo stile del tuo tema.
Come funziona:
Corrisponde ad alcuni dei nomi nativi del dispositivo nella stringa User Agent. Quindi se qualcuno manipola la stringa e invia informazioni false, non puoi rilevare su quale dispositivo ti trovi.
Inoltre non restituisce alcun nome del dispositivo, ma solo true
se non sei su desktop, altrimenti false
.
Come WordPress lo utilizza: WordPress non lo utilizza per lo stile o per aggiungere CSS da nessuna parte. WordPress lo usa per aggiungere o manipolare elementi che dovrebbero essere presenti solo su dispositivi mobili (a prescindere dalle dimensioni e dal nome). Ad esempio, per aggiungere script touch, viewport, classi mobile nell'header dell'amministrazione, aggiungere pulsanti mobile.
Effetto della cache: Se utilizzi un plugin di caching, è inutile. Poiché il tuo codice non viene eseguito ogni volta, otterrai lo stesso risultato ogni volta.
WordPress lo utilizza principalmente nel back-end e quasi tutti i plugin di caching escludono la cache nel back-end o per gli utenti loggati. Quindi funziona bene.

wp_is_mobile()
rileva il dispositivo basandosi su HTTP_USER_AGENT
(non è relativo alla dimensione dello schermo)
wp_is_mobile
restituisce vero o falso in base a $_SERVER['HTTP_USER_AGENT']
se $_SERVER['HTTP_USER_AGENT']
contiene Mobile (Android, IOS...) o Tablet restituisce true
, altrimenti restituisce false
se $_SERVER['HTTP_USER_AGENT']
è nullo restituisce false
per ulteriori informazioni controlla il codice sorgente della funzione
