¿Cómo mostrar código si no está en ciertas páginas?
Estoy tratando de configurar una declaración if para mostrar cierto código si el usuario está en una página específica. He logrado que funcionen las páginas de enlaces y trabajos de estudiantes, pero cuando agrego el if not link y not student work obtengo un error T_BOOLEAN_AND inesperado. ¿Cómo puedo arreglarlo para poder listar las páginas donde no quiero código personalizado y usar simplemente 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');
}
?>

¿Podrías editar tu respuesta y ampliar por qué esto resuelve la pregunta del OP y proporcionar cualquier enlace que respalde cómo esto soluciona el problema, por favor?

Esto es realmente solo PHP, no WordPress, pero tu declaración if inicial tiene un paréntesis extra después de !is_page('links')
, por lo que el &&
queda afuera y PHP no sabe qué hacer con él. Sería mejor reorganizar el bloque de todas formas, por ejemplo:
<?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');
}
?>
En términos de WordPress, probablemente sería mejor usar archivos de plantilla específicos para cada página, como page-links.php o page-student-work.php
. También podrías usar get_template_part()
en lugar de includes para lograr lo que hace ese bloque if/else en una sola línea si necesitas mantener todo esto en un archivo por alguna razón.
