Come visualizzare il codice se non sono determinate pagine?
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');
}
?>

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?

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.
