¿Cómo mostrar código si no está en ciertas páginas?

22 ago 2011, 01:46:13
Vistas: 31.7K
Votos: 3

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');
            }
?>
0
Todas las respuestas a la pregunta 2
1

Acabo de usar este código y me funcionó. Espero que resuelva tu problema.

if( ! is_page( array( 'enlaces', 'trabajos-estudiantes' ) ) ) { /* ... */ }
26 ene 2017 22:05:07
Comentarios

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

Howdy_McGee Howdy_McGee
26 ene 2017 22:35:39
0

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.

22 ago 2011 04:52:47