Detectare lățime ecran în funcții WordPress
Caut o metodă să adaug A înaintea meniului dacă suntem pe desktop și să adaug B dacă suntem pe dispozitiv mobil.
Acestea sunt funcțiile mele pentru A și B:
add_action( 'wp_head', 'A_function' );
function A_function() {
//adaugă A
}
add_filter( 'wp_nav_menu_items', 'B_function', 10, 2 );
function B_function() {
//adaugă B
}
Știu că trebuie să folosesc aceste hook-uri în fișierul functions.php, dar nu știu cum să o fac. Știu că putem folosi wp_is_mobile()
.
Cum pot realiza acest lucru?

Conform codex-ului, wp_is_mobile();
este o funcție booleană care returnează true dacă utilizatorul vizitează site-ul pe un dispozitiv mobil, deci ceea ce aveți nevoie este:
if ( wp_is_mobile() ) {
// Rulează acest cod doar pentru vizitatorii pe dispozitive mobile
add_filter( 'wp_nav_menu_items', 'B_function', 10, 2 ); function B_function(/* adaugă B */ );
} else {
// Dacă nu suntem pe mobil, atunci rulează acest filtru
add_action( 'wp_head', 'A_function' ); function A_function(/* adaugă A */);
}

ideea foarte proastă, nu este fiabilă, strică caching-ul, nu este responsive și probabil are și alte dezavantaje

Codul PHP al WordPress rulează pe partea de server — nu poate și nu este conștient de ecranul dispozitivului client.
wp_is_mobile()
se bazează pe detectarea agentului utilizator, adică încearcă să potrivească datele furnizate de browser-ul clientului. Această tehnică este considerată notoriu de nesigură și cu o utilitate foarte limitată.
Deoarece nu furnizați context despre scopul pe care îl servesc link-urile dvs., este dificil să recomandăm o abordare potrivită. Tehnicile pe partea de client, cum ar fi interogările media CSS, sunt frecvent utilizate pentru detectarea fiabilă a contextului în browser-ul clientului.

wp_is_mobile()
nu ar trebui folosit niciodată. În prezent, existența sa este legată în principal de unele bug-uri ale browserului care trebuie gestionate pe partea de administrare.
Pentru orice care necesită conștientizarea dimensiunii fizice a dispozitivului sau a dimensiunii ferestrei browserului, acest lucru ar trebui realizat cu reguli media în CSS și JavaScript.

Cred că problema este că OP încearcă să adauge conținut HTML în funcție de user agent, ceea ce ar face CSS-ul inutil. M-aș putea gândi doar la soluția de a scrie tot codul într-un fișier JavaScript și de a gestiona problema acolo.
