У каждой категории своя картинка в шапке

Как сделать, чтобы у каждой категории была своя картинка в шапке?
Заранее спасибо.

настроить для каждой категории свой шаблон category-1.php, category-2.php и т.д.
либо в одном шаблоне category.php написать код пхп, который будет выводить нужную картинку в зависимости от выбранной категории.

легко……… например внутри папки shapka находятся картинки для хеадера….

в зависимости от ID категории можно поменять картинки таким образом:

<img src="shapka/<?php the_category_ID(); ?>.gif" />

———
P.S. главное чтоб ты знал ID категорий и дал цифровое название своим гифам относительно категорий.

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

Есть. Прописать картинкам корректные пути.

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

пошевели своими серыми клетками…. и введи свой путь к картинам правильно!!!!

Вставь в header.php такой код
<?php { ?>
<img src="<?php bloginfo(‘template_url’); ?>/images/header_<?php the_category_ID(); ?>.jpg" />
<?php } ?>
Где
1. картинки лежать будут в папке images темы
2. Название их начинается с header_… т.е. вида header_ID.jpg, где ID – ид категории

Привет.
Хочу у себя на сайте http://fotoset.net/ поставить иконку возле каждой рубрики.
Вот пример:

Но ничего не получается. Я создал иконку header_5.gif b и скопировал ее в папку images моей темы.
Поставил следующий код в sidebar.php :

<?php { ?>
<img src="<?php bloginfo(‘template_url’); ?>/images/header_5<?php
the_category_ID(5); ?>.gif" />
<?php } ?>

Но иконка не показывается в том месте где надо (как на фото). Мало того иконку вообще не видно. Просто кубик с надписью "Рисунок".

Просветите пожалуйста.
Спасибо.

То что хотите вы и что хочет topic-starter, это совсем разные вещи.

Человек, начавший тему, хочет одну картинку на всю категорию. Типа заголовок, логотип и так далее, вы же хотите картинки к каждой категории, которые вы выводите через wp_list_cats. Это две разные вещи, и реализуются абсолютно различно.

В вашем случае проще прописать все вручную, весь блок в смысле.

Я бы делал по-другому. Смотрим код страницы, где список категорий, и видим там нечто такое:
<li class="cat-item cat-item-1"><a href="…
<li class="cat-item cat-item-3"><a href="…
Обращаем особое внимание на cat-item-1 и cat-item-3. Это уникальные классы для категорий. А дальше в style.css делаем типа
.cat-item {padding-left: 10px;}
.at-item-1 {background: url(‘images/cat-1.gif’) left no-repeat;}
.at-item-3 {background: url(‘images/cat-3.gif’) left no-repeat;}

Да, вариант получше. У автора cat-item cat-item-1 выводится, что не всегда встречается 🙂

Кстати, а почему не всегда?

<?php wp_list_categories(‘&title_li=’); ?> например

А вот и не факт.

А покажите пример. Вот мой – demeu-magazin.kz, там через <?php wp_list_categories(‘&title_li=’); ?> сделано 🙂

_http://zhuki.kharkov.ua/
<li><h2>Categories</h2>
<ul>
<?php wp_list_categories(‘&title_li=’); ?>
</ul>
</li>

🙂

А на моем официальном блоге действительно нет классов. Грешу на версию.

Странно, погонял на локалхосте, откуда у Жуков взялся класс не понимаю 🙂 Грешил на вложенность, но дело не в ней. Есть зацепка?

Систему понял. Все работает. Но вот немного не на месте стоит иконка. Можете посмотреть. Как подвинуть ее немного левее? Или может я размер неправильный выбрал? Сейчас размер иконки 16*16. Если сделать меньше – очень маленькая будет…

Могу еще одного недоделка с классами показать. 🙂 Взялся понятно откуда – из класса Walker_Category:

        if ( 'list' == $args['style'] ) {
            $output .= "\t<li";
            $class = 'cat-item cat-item-'.$category->term_id;
            if ( $current_category && ($category->term_id == $current_category) )
                $class .=  ' current-cat';
            elseif ( $_current_category && ($category->term_id == $_current_category->parent) )
                $class .=  ' current-cat-parent';
            $output .=  ' class="'.$class.'"';
            $output .= ">$link\n";
        } else {
            $output .= "\t$link<br />\n";
        }

А вот "потерять" классы на локальном так и не удалось.

Fotoset, мучайте margin и padding пока иконки на место не станут.

"Мучайте", можно говорить если я не знаю как это сделать. Скажите Вы пожалуйста. Если я не узнаю тут – узнаю на другом форуме : )

"Мучайте", можно говорить если я не знаю как это сделать. Скажите Вы пожалуйста.

.cat-item {padding-left: 20px; margin-left: 0px;}

Вот эти цифры и можно менять туда-сюда.

Если я не узнаю тут - узнаю на другом форуме : )

Мне уже страшно.

Спасибо. Вы настоящий профи.

А вот фрагмент classes.php, аналогичный приведенному выше, но от 2.2.3

        if ( 'list' == $args['style'] ) {
            $output .= "\t<li";
            if ( $current_category && ($category->cat_ID == $current_category) )
                $output .=  ' class="current-cat"';
            elseif ( $_current_category && ($category->cat_ID == $_current_category->category_parent) )
                $output .=  ' class="current-cat-parent"';
            $output .= ">$link\n";
        } else {
            $output .= "\t$link<br />\n";
        }

Как видите, кое-чего не хватает.

PS Странно, что ж за гибрид у меня стоял на локале под маркой 2.2.3, если у него это место такое же, как у 2.3? Чудеса да и только.

{padding-left: 20px; margin-left: 0px;}

Как я понял padding – это сдвиг строки категории.
А как увеличить расстояние между категориями? Т.е. нужно чтобы между строчками было больше места. Хочу чуть-чуть побольше иконки сделать – но верх и низ режет…

line-height: 500px;

Еще один профи 🙂 Сенкю 😉

Хух… Сделал… Оцените: http://fotoset.net/

На всякий случай. padding и margin бывают не только left, но и в другие стороны. Почитайте матчасть, оно не раз еще пригодится.

PS Шутку юмора – иконку от Джумлы с подписью "Спорт" – заценил. 😀

Подниму старую тему 🙂
Встала та же проблема – сделать разные шапки, но <img src="<?php bloginfo(‘template_url’); ?>/images/header_<?php the_category_ID(); ?>.jpg" /> не подходит. Есть подозрение что the_category_ID в WordPress 2.7.1 нужно чем то заменить, т.к. функция устарела. А чем?
Всем спасибо заранее.

Есть подозрение что the_category_ID в WordPress 2.7.1 нужно чем то заменить, т.к. функция устарела. А чем?
Всем спасибо заранее.

Она устарела гораздо раньше 🙂 Вот почитайте http://mywordpress.ru/support/viewtopic.php?pid=40412

Это я почитал уже 🙂 Но там парень пишет что

Из кодекса, в приведенной Вами же ссылке

    <img src="<?php the_category_ID(); ?>.gif" />

, где в результате получим код
Код:

<img src="номер рубрики, в которой находимся.gif">

И это работает на версии 2.7.1, значит не так уж и безбожно утсрело :)

У меня на 2.7.1 не работает. В кодексе http://codex.wordpress.org/Template_Tags/the_category_ID написано, что она устарела, а чем ее заменить, нет. Ю.Б., разжуйте, а? 🙂

🙂 А там ближе к концу есть такой кусочек кода: …&child_of=’.$cat);… Вот это и нужно было заметить и заюзать как <img src="/<= $cat ?>.gif" />. Но это только для страниц рубрик. Для постов сложнее, т.к. пост может быть более чем в одной рубрике. Пишем тогда что-то типа такого:
$cats = get_the_category(); // получить список рубрик
$cato = $cats[0]; // получить первую попавшуюся
$cat = $cato->cat_ID; // получаем ID этой рубрики

Хм, все равно не отдает картинку, а в исходном коде показывает <img src="images/header-.jpg" />
С путями все нормально 🙁

С путями тоже не нормально, во избежание недоразумений надо делать абсолютные пути от корня. images/img.jpg допустимы только в CSS, т.к. он считает относительные относительно себя, а не страницы.

$cat, конечно, недокументированная переменная, но до сих пор у меня везде срабатывала. А у Вас это хозяйство прямо в шаблоне или через функцию вызывается? Если через функцию, то стоит попробовать добавить global $cat;.

Хозяйство прямо в шаблоне – в header.php

Абсолютный путь ничего не дал 🙁

А header.php подключается через get_header(); Вот и функция. В php переменные, определенные снаружи функции, не видны внутри. Чтобы до них дотянуться, нужно использовать global.

Подставил global, все равно нет картинки а в исходниках …/header-.jpg 🙁

Кто нибудь знает как на форуме удалить свою запись? Написал не в тот топик.

Этот тоже можно удалить =)

Господа, ну подскажите – какая переменная должна быть 🙂 the_category_ID не работает (ибо устарела)
$cat отдает пустой лист
global $cat; пишет syntax error, unexpected T_GLOBAL

Может за денежку кто поможет?

можно еще посмотреть что у нас тут: global $wp; print_r($wp);

p.s. но это брутальный способ…

Anonymous
Отправить
Ответ на: