Можно не делать 7 хедеров, вместо этого написать одну функцию theme_slug_print_header() в файле functions.php, которая будет выводить ваш хедер
function theme_slug_print_header() {
if (in_category(1) ) : ?>
<div id="header"> </div>
<?php
elseif (in_category(2) ) : ?>
<?php
endif;
}
Там уже не так страшно, что написано. В css картинка — это фон. А так обычно ссылку на img вставляют. <?php theme_slug_print_header(); ?>
theme_slug_print_header() в файле functions.php, которая будет выводить ваш хедер
Хорошее решение впринципе. Но можно подробнее объяснить как работает этот код в моем случаае для 7 категорий? Ведь в нем задан только 1 параметр if и 1 elseif
Для своего варианта подискал решение:
< ?php
if (is_single('6')) {
include(TEMPLATEPATH.'/header1.php');
} elseif (is_single('5')) {
include(TEMPLATEPATH.'/header2.php');
} elseif (is_single('4')) {
include(TEMPLATEPATH.'/header3.php');
} else {
include(TEMPLATEPATH.'/header.php');
} ?>
Но можно подробнее объяснить как работает этот код в моем случаае для 7 категорий? Ведь в нем задан только 1 параметр if и 1 elseif
Это незаконченный вариант, можно дописать еще 5. Просто 1 функция лучше выглядит, т.к. вы не переписываете весь файл, а только нужную часть. Теперь, если вам захочется внести изменения в header, вам придется делать это во всех семи файлах, будут появляться ошибки, описки и т.д.
Если нужно просто менять фон header’а, то создавать header.php, header-2.php и т.д. бред.
В идеале это реализуется при помощи JavaScript, благо в классах тегов расписано предостаточно информации.
Альтернативный вариант, что мешает написать, к примеру:
<?php
if(is_single(1)) $header_class = 'bg_1';
elseif(is_single(5)) $header_class = 'bg_2';
else $header_class = 'no_bg';
?>
<div id="header" class="<?php echo $header_class; ?>">
в css файле, соответственно, прописать для каждого класса индивидуальный background-image
Аналогично можно на переменные повесить все что угодно, к примеру тот же src для <img />