Intereting Posts
wp_mail – удалить имя пользователя из темы электронной почты Путаница в отношении URL-адреса и каталога сайта Возможно ли изменить widget_pages и добавить собственное имя класса и интервал внутри li? Более одного TinyMCE (wp_editor) с разными значениями $ settings ломается Есть ли универсальный пул для статической домашней страницы? Потерянный проект по всем постам и черновикам как добавить один и тот же виджет дважды на боковую панель? Получать сообщения из нескольких типов сообщений после миграции новые загруженные изображения не будут отображаться Как добавить категорию продукта-родителя как имя класса во все подкатегории в wordpress? Как регулярно создавать резервные копии и обновлять веб-сайт WordPress с большим количеством изображений? Предупреждение об ошибке: Объявление описания_walker :: start_el после обновления PHP Могут ли переменные использоваться для перезаписи постоянной ссылки типа пользовательского сообщения? Можно ли создать rel = "noindex, nofollow" для одного сообщения, если содержат плохие ключевые слова? Главная не показана в летней панировке

Почему здесь не работает мой if / elseif / else?

Я использую простой, если / elseif / else бит кода для создания изображения заголовка для моей страницы, я не могу понять, почему он не работает должным образом. Он определяет категорию отображаемой страницы и соответственно отображает заголовок. Вот код в моем header.php:

<?php if (is_category('dino run') || has_category('dino run')) { ?> <a href="dino-run/"><li><div class="logo splash2">Dino Run</div></li></a> <?php } elseif (is_category('potatoman') || has_category('potatoman')) { ?> <a href="http://www.pixeljam.com/potatoman/"><div class="logo splash4">Potatoman Seeks the Troof</div></a> <?php } elseif (is_category('glorkian' || 'glork') || has_category('glorkian' || 'glork')) { ?> <a href="glorkian"><div class="logo splash3">Glorkian Warrior</div></a> <?php } else { ?> <a href="#"><div class="logo splash1">The Pixeljam Octology</div></a> <?php } ?> 

Проблема, с которой я сталкиваюсь, – это щелкнуть по почте, в которой есть категория «Dino Run», и она отображается нормально … но когда я нажимаю на сообщение, которое не имеет ни одной из вышеуказанных 3 определенных категорий, оно не проваливаются в оператор else, он фактически отображает третий заголовок «Glorkian Warrior».

Какие-нибудь идеи, что я сделал здесь неправильно?

is_category не будет обрабатывать логику внутри списка аргументов. Эта:

 is_category('glorkian' || 'glork') 

Условие верно для всех категорий. Я думаю, что происходит то, что PHP разбирает эту строку аргументов, но всегда будет правдой. Попробуй это:

 var_dump('glorkian' || 'glork'); 

Это означает, что вы делаете, по сути, следующее:

 is_category(true); 

Это не допустимый аргумент, но функция, похоже, возвращается к функциональности по умолчанию – это архив категории или нет? Очевидно, что ответ «да» в любом архиве категории.

Допустимыми аргументами являются:

(смешанный) (необязательно) Идентификатор категории, Категория Название, Категория Слизь или Массив идентификаторов, имен и слизней.

http://codex.wordpress.org/Function_Reference/is_category#Parameters

Поэтому я считаю, что вам нужно:

 is_category( array( 'glorkian', 'glork' ) ); 

has_category же самое с has_category .

Я хотел бы использовать:

 in_category('cat-slug') ) { 

если вы хотите отобразить изображение на всех постах в категории.

Вот рабочий пример, который я написал и протестировал.

Это возвращает true как на странице архива категорий, так и на все должности в категории

 if(is_home()) echo '<div class="home-header"><img src="http://img.wordpressask.com/headers/f" alt="category header image" /></div>'; elseif(in_category('category-1') ) echo '<div class="category-one-header"><img src="http://img.wordpressask.com/headers/f" alt="category header image" /></div>'; elseif(in_category('category-2') ) echo '<div class="category-two-header"><img src="http://img.wordpressask.com/headers/f" alt="category header image" /></div>'; elseif(in_category('category-3') ) echo '<div class="category-three-header"><img src="http://img.wordpressask.com/headers/f" alt="category header image" /></div>'; elseif(in_category('category-4') ) echo '<div class="category-four-header"><img src="http://img.wordpressask.com/headers/f" alt="category header image" /></div>'; } 

Связанная информация

Другой вариант – использовать код из файла header.php Twenty Eleven, который позволяет использовать встроенный метаданный Add Featured Image, чтобы отображать уникальные заголовки на разных сообщениях и страницах без добавления какого-либо кода.

Или вы можете легко добавить условные выражения, а также если инструкции для этого кода являются более эффективным решением.