web-dev-qa-db-fra.com

détecter la largeur de l'écran dans les fonctions

Je trouve un moyen d'ajouterAavant le menu si nous sommes sur le bureau et d'ajouterBsi nous sommes sur un appareil mobile.

En tant que tel, ce sont mes fonctions pourAetB:

add_action( 'wp_head', 'A_function' );
function A_function() {
    //add A
}
add_filter( 'wp_nav_menu_items', 'B_function', 10, 2 );
function B_function() {
    //add B
}

Je sais que j'ai besoin de mettre ces crochets dans le fichier de fonctions mais je ne sais pas comment le faire, je sais que nous pouvons utiliser wp_is_mobile().

Comment puis-je y arriver?

1
Yoona

Selon codex , wp_is_mobile(); est une fonction booléenne qui renvoie la valeur true si l'utilisateur visite le site Web sur un appareil mobile. Vous avez donc besoin de:

if ( wp_is_mobile() ) {
    // Run this only for mobile visitors
    add_filter( 'wp_nav_menu_items', 'B_function', 10, 2 ); function B_function(/* add B */ );
} else {
    //If we are not on mobile, then run this filter
    add_action( 'wp_head', 'A_function' ); function A_function(/* add A */);
}
0
Jack Johansson

Le code PHP de WP s'exécute côté serveur. Il ne peut pas et ne peut pas connaître l'écran de la machine cliente.

wp_is_mobile() repose sur user agent sniffing , c’est-à-dire qu’il essaie de faire correspondre les données fournies par le browser du client. La technique est considérée comme notoirement peu fiable et d’utilisation très limitée.

Étant donné que vous ne fournissez pas de contexte sur l’utilité de purpose vos liens, il est difficile de vous conseiller sur l’approche appropriée. Les techniques côté client, telles que les requêtes de média CSS, sont couramment utilisées pour la détection fiable du contexte dans le navigateur du client.

0
Rarst

wp_is_mobile() ne devrait jamais être utilisé. À ce stade, son existence est principalement liée à certains bogues de navigateur qui doivent être traités du côté de l’administrateur.

Pour tout ce qui doit être conscient de la taille du périphérique physique, ou de la taille de la fenêtre du navigateur, utilisez les règles de support en CSS et JavaScript.

0
Mark Kaplun