Uso corretto di wp_is_mobile ()?


18

Ho sviluppato un tema reattivo e voglio inviarlo su wordpress.org . Prima di inviarlo, voglio utilizzarlo wp_is_mobile()nel mio tema, ma in base al Riferimento funzioni / wp è mobile è una cattiva idea perché dice questo:

Dovresti capire 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 deve essere utilizzato per i temi.

Quindi se lo uso nel mio tema funzioni.php in questo modo:

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

Il mio tema verrà rifiutato?

Sotto-domanda:

Se uso la mia funzione come nel codice sopra e uso plug-in di cache come (WP Super Cache) la mia funzione verrà incasinata (non è riuscita a eseguire o restituire falsi positivi)?

Grazie per il tuo tempo e le risposte ...


1
Stanno dicendo che abbiamo questa funzione, ma non la usiamo, perché non va bene - è assolutamente ironico. Non so se il tuo tema verrebbe rifiutato per usarlo, ma in tal caso aumenterebbe l'ironia al massimo. Dopotutto è una funzione WP e non deprecata.
Nicolai,

3
La vera domanda è perché vuoi aggiungere la classe mobile / desktop?
TheDeadMedic

1
Quello che dice @TheDeadMedic è vero, ad esempio puoi lavorare con le query multimediali CSS .
Nicolai,

1
wp_is_mobile()non è altro che uno scherzo ed è davvero inaffidabile. Si basa sul lato utente che può essere manipolato dall'utente finale. Devi sapere che la tua funzionalità fallirà in oltre il 10% dei casi, quindi una grande quantità di utenti di dispositivi mobili riceveranno contenuti desktop indipendentemente dal fatto che gli piaccia o no
Pieter Goosen

4
Quindi è lì e fa schifo proprio come query_posts ();
Dejo Dekic,

Risposte:


31

In termini molto profani wp_is_mobile()non è per dare uno stile al tuo tema.

Come funziona: corrisponde ad alcuni dei nomi nativi del dispositivo in User Agent String. Quindi, se qualcuno manipola la stringa e invia informazioni false, non è possibile rilevare quale dispositivo sia. E non restituisce alcun nome di dispositivo, ma restituisce solo truese non si è su desktop altrofalse

Come WordPress lo usa: WordPress non lo usa per lo styling o l'aggiunta di CSS ovunque. WordPress lo usa per aggiungere o manipolare cose che dovrebbero essere solo su dispositivi mobili (indipendentemente dalle dimensioni e dal nome.) Ad esempio per aggiungere script touch, aggiungere viewport, classe mobile nell'intestazione dell'amministratore, aggiungere pulsanti mobili.

Effetto della memorizzazione nella cache : se si utilizza il plugin di memorizzazione nella cache, è inutile. Poiché il tuo codice non viene eseguito ogni volta, otterrai sempre lo stesso risultato.

WordPress lo utilizza principalmente nel back-end e quasi ogni plug-in di cache esclude la cache nel back-end o dice per l'utente che ha effettuato l'accesso. Quindi funziona benissimo.


1

wp_is_mobile()è correlato a HTTP USER AGENT, non è correlato alle dimensioni dello schermo

wp_is_mobile restituisce vero o falso in base a $_SERVER['HTTP_USER_AGENT']

se $_SERVER['HTTP_USER_AGENT']contiene Mobile (Android o BlackBerry o simili ..),

quindi wp_is_mobilerestituisce - true (rilevato come dispositivo mobile), in caso contrario verrà restituitofalse

un semplice caso d'uso: per creare un collegamento, prova ad accedere all'app per dispositivi mobili o alla pagina Web.

per maggiori informazioni controlla il codice sorgente della funzione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.