Come visualizzare il codice se non sono determinate pagine?

22 ago 2011, 01:46:13
Visualizzazioni: 31.7K
Voti: 3

Sto cercando di impostare un'istruzione if per visualizzare un determinato codice se l'utente si trova su una determinata pagina. Ho fatto funzionare le pagine dei link e dei lavori degli studenti, ma quando aggiungo if not link e not student work ottengo un errore T_BOOLEAN_AND inaspettato. Come posso correggere questo per poter elencare le pagine per cui non voglio un codice personalizzato e utilizzare semplicemente page.php?

<?php 
            // Se NON è la pagina 'links' E NON è la pagina 'student-work'
            if (!is_page('links') && !is_page('student-work'))  {
                include(TEMPLATEPATH . '/pages/page.php');
            } 
            // Se è la pagina 'links'
            elseif (is_page('links')) {
                query_posts('cat=2');
                include(TEMPLATEPATH . '/pages/links.php');
            } 
            // Se è la pagina 'student-work'
            elseif (is_page('student-work')) {
                query_posts('cat=4');
                include(TEMPLATEPATH . '/pages/student-work.php');
            }
?>
0
Tutte le risposte alla domanda 2
1

Ho appena utilizzato questo codice e funziona per me. Spero che risolva il tuo problema.

if( ! is_page( array( 'links', 'student-work' ) ) ) { /* ... */ }
26 gen 2017 22:05:07
Commenti

Potresti modificare la tua risposta e approfondire il motivo per cui questa soluzione risponde alla domanda dell'OP e fornire eventuali collegamenti che supportino come questo risolve il problema?

Howdy_McGee Howdy_McGee
26 gen 2017 22:35:39
0

Questo è semplicemente PHP, non WordPress, ma la tua istruzione if iniziale ha una parentesi extra dopo !is_page('links'), quindi il && rimane fuori e PHP non sa come gestirlo. Sarebbe comunque meglio riorganizzare il blocco, ad esempio:

<?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 termini di WordPress, probabilmente sarebbe meglio utilizzare file template specifici per pagina, come page-links.php o page-student-work.php. Potresti anche usare get_template_part() invece degli include per ottenere ciò che fa quel blocco if/else in una sola riga, se per qualche motivo devi mantenere tutto in un unico file.

22 ago 2011 04:52:47