web-dev-qa-db-fra.com

is_page "range" pour l'instruction if?

J'essaie de raccourcir mon code, mais j'ai du mal à trouver une réponse ou même à la coder à mesure que j'apprends.

Si j'ai bien compris, is_page n'autorise pas de plage de pages. Existe-t-il un autre moyen de procéder?

Mon code actuel est:

if (is_user_logged_in()) {
    if (is_page( '310', '312', '314', '316', '318', '320', '322', '324', '326' )) {
        echo do_shortcode('[example shortcode]');
    }
    else {
        echo do_shortcode('[example shortcode]');
    }
}

Le problème est que j'ai tellement de pages que je dois faire dans ma "plage". Ce serait bien, par exemple, de faire 310 - 326.

Pour commencer, pourrais-je utiliser la fonction range () pour créer une variable de plage de pages, puis l'appeler ultérieurement?

Quelqu'un peut-il m'aider avec quelques idées sur celui-ci, et peut-être décrire certaines choses que je fais mal, car cela m'aide à apprendre.

Merci beaucoup.

1
Student

Je pense que vous devriez créer une plage en tant que variable et la définir sur is_page(), ce qui devrait fonctionner.

$range = range(310, 326);
if(is_page($range)){
    // your code..
}

La fonction is_page() peut accepter un tableau comme argument. Et range() function retourne un tableau. Cet exemple fonctionne bien pour moi.

2
Maxim Sarandi