web-dev-qa-db-de.com

Wie zeige ich Code an, wenn es sich nicht um bestimmte Seiten handelt?

Ich versuche, eine if-Anweisung einzurichten, um bestimmten Code anzuzeigen, wenn sich der Benutzer auf einer bestimmten Seite befindet. Ich habe die Links und die Schülerarbeitsseiten zum Laufen gebracht, aber wenn ich den If Not Link und die Schülerarbeit hinzufüge, erhalte ich einen unerwarteten T_BOOLEAN_AND-Fehler. Wie kann ich das beheben, um die Seiten aufzulisten, für die ich keinen benutzerdefinierten Code haben möchte, und nur page.php zu verwenden?

<?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

Ich habe gerade diesen Code verwendet und es funktioniert für mich. Hoffentlich löst es Ihr Problem.

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

Dies ist eigentlich nur PHP, nicht WP, aber Ihre ursprüngliche if-Anweisung enthält nach !is_page('links') eine zusätzliche Klammer, sodass der && außerhalb steht und PHP nicht weiß, was Sie damit tun sollen. Es wäre besser, den Block trotzdem neu zu organisieren, z.

<?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');
        }
?>

In Bezug auf WordPress ist es wahrscheinlich besser, seitenbezogene Vorlagendateien wie page-links.php or page-student-work.php zu verwenden. Sie können auch get_template_part() anstelle von includes verwenden, um zu erreichen, was der if/else-Block in nur einer Zeile tut, wenn Sie dies aus irgendeinem Grund in einer Datei speichern müssen.

3
helenhousandi