Как отобразить код, если это не определенные страницы?

22 авг. 2011 г., 01:46:13
Просмотры: 31.7K
Голосов: 3

Я пытаюсь настроить условный оператор для отображения определенного кода, если пользователь находится на определенной странице. У меня работают страницы ссылок и работ студентов, но когда я добавляю условие "если не ссылка и не работа студента", я получаю ошибку unexpected T_BOOLEAN_AND. Как можно исправить это, чтобы перечислить страницы, для которых я не хочу использовать пользовательский код, и использовать просто 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
Все ответы на вопрос 2
1

Я только что использовал этот код, и он работает у меня. Надеюсь, он решит вашу проблему.

if( ! is_page( array( 'links', 'student-work' ) ) ) { /* ... */ }
26 янв. 2017 г. 22:05:07
Комментарии

Не могли бы вы отредактировать ваш ответ и подробнее объяснить, почему это решает вопрос автора, а также предоставить любые ссылки, подтверждающие, как это решает проблему?

Howdy_McGee Howdy_McGee
26 янв. 2017 г. 22:35:39
0

Это чистый PHP, а не WordPress, но в вашем исходном условном операторе есть лишняя скобка после !is_page('links'), поэтому && оказывается снаружи, и PHP не знает, что с ним делать. В любом случае, лучше реорганизовать блок, например:

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

Что касается WordPress, вероятно, лучше использовать файлы шаблонов для конкретных страниц, такие как page-links.php или page-student-work.php. Вы также можете использовать get_template_part() вместо include, чтобы выполнить то же, что делает этот блок if/else, всего одной строкой, если вам по какой-то причине нужно оставить всё в одном файле.

22 авг. 2011 г. 04:52:47