web-dev-qa-db-fra.com

Comment afficher le code s'il ne s'agit pas de certaines pages?

J'essaie de configurer une instruction if pour afficher un certain code, si l'utilisateur est sur une certaine page. J'ai les liens et les pages de travail des étudiants à travailler, mais lorsque j'ajoute le lien si ce n'est pas le lien et pas le travail des étudiants, je reçois une erreur inattendue T_BOOLEAN_AND. Comment puis-je résoudre ce problème afin de pouvoir répertorier les pages pour lesquelles je ne souhaite pas de code personnalisé et utiliser uniquement page.php

<?php 
            if (!is_page('links')) && (!is_page('student-work'))  {
                include(TEMPLATEPATH . '/pages/page.php');
            } elseif (is_page('links')) {
                query_posts('cat=2');
                include(TEMPLATEPATH . '/pages/links.php');
            } elseif (is_page('student-work')) {
                query_posts('cat=4');
                include(TEMPLATEPATH . '/pages/student-work.php');
            }
?>
3
Brett

Je viens d'utiliser ce code et cela fonctionne pour moi. Espérons que cela résoudra votre problème.

if( ! is_page( array( 'links', 'student-work' ) ) ) { /* ... */ }
4
Mohit Kumar

Il s’agit en réalité de PHP, pas de WP, mais de votre instruction if initiale avec une parenthèse supplémentaire après !is_page('links'). Le && est donc extérieur et PHP ne sait pas quoi en faire. Il serait préférable de réorganiser le bloc de toute façon, par exemple.

<?php 
        if (is_page('links')) {
            query_posts('cat=2');
            include(TEMPLATEPATH . '/pages/links.php');
        } elseif (is_page('student-work')) {
            query_posts('cat=4');
            include(TEMPLATEPATH . '/pages/student-work.php');
        }
        else  {
            include(TEMPLATEPATH . '/pages/page.php');
        }
?>

Pour ce qui est de WordPress, il serait probablement préférable d’utiliser des fichiers modèles spécifiques à une page, tels que page-links.php or page-student-work.php. Vous pouvez également utiliser get_template_part() au lieu de includes pour accomplir ce que si/else bloque en une seule ligne si vous devez conserver tout cela dans un fichier pour une raison quelconque.

3
helenhousandi