• <?php
    if (is_single() && is_category('кино'))
    echo 'class="ccat"';
    ?>

    не работает условие, что не так?
    должен выводится класс

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Если
    id категории текущей статьи
    совпадает с
    id текущей категории,

    Вы сами-то поняли, что хотите? Я нет 🙂

    Синтаксис цикла:
    if (условие) {действие}

    Сравните с тем, что написано у вас. И меняйте условие.

    Вы сами-то поняли, что хотите? Я нет 🙂

    Я, кстати, тоже нет.

    такое тоже не работает

    <?php
    $category = get_the_category();
    $fer = $category[0]->cat_name;
    if (is_single() && $fer)
    echo 'class="ccat"';
    else echo '';?>

    что делать? как заставить чтобы работало? неужели никто не разбирается =(((

    неужели никто не разбирается =(((

    Вы бы сначала объяснили на понятном языке, что хотите, возможно кто-нибудь и поможет.. Лично я не понимаю, что вы хотите сделать и зачем.

    хочу чтобы статья текущей рубрики имела class=»ccat»

    это нужно мне для подсветки рубрики со статьи.
    Иными словами открыта статья — ее рубрика подсвечена

    у меня 5 рубрик, в каждой есть статьи

    допустим сейчас открыта статья #1 рубрики #1 при этом сама рубрика подсвечена, т.е. в html-коде, отвечающем за эту рубрику есть класс, а у других рубрик этого класса нет и поэтому они не подсвечены сейчас.

    Если перейти в другую статью другой рубрики, соответственно уже та рубрика будет подсвечена, а другие — нет.

    Класс должен быть переходящим. Всегда быть на текущей рубрике!

    Я не знаю как и где вы собиратесь выводить рубрики, подозреваю, что речь идет о сайдбаре и функции wp_list_categories()
    Можно поступить таким образом, внизу стилевого файла добавить:

    li.current-cat {
      font-weight: bold;
    }

    Согласитесь, через стили проще, чем что-то программировать 🙂

    эм, через стили и собираюсь =) как же еще?

    только стили на этот класс у меня уже заданы.

    осталось написать код, который бы вписывал класс в текущую рубрику.

    но написать его что-то никак не выходит, уже наверно все перепробовал, нужно мнение спеца, программиста разбирающегося в php и wordpress.

    вот до кучи наглядный пример html-кода с комментариями, который должен быть в итоге (без комментариев конечно =) ):

    Находимся в какой-то статье, которая в рубрике 3

    <a href="http://ru.ru/category/1/">1</a> //не текущий - не подсвечен
    <a href="http://ru.ru/category/2/">2</a> //не текущий - не подсвечен
    <a class="ccat" href="http://ru.ru/category/3/">3</a> //текущий!!! - подсвечен!!!
    <a href="http://ru.ru/category/4/">4</a> //не текущий - не подсвечен
    <a href="http://ru.ru/category/5/">5</a> //не текущий - не подсвечен

    А сейчас находимся в какой-то статье, которая в рубрике 5

    <a href="http://ru.ru/category/1/">1</a> //не текущий - не подсвечен
    <a href="http://ru.ru/category/2/">2</a> //не текущий - не подсвечен
    <a href="http://ru.ru/category/4/">3</a> //не текущий - не подсвечен
    <a href="http://ru.ru/category/4/">4</a> //не текущий - не подсвечен
    <a class="ccat" href="http://ru.ru/category/5/">5</a> //текущий!!! - подсвечен!!!

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

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

    Функция wp_list_categories(), которую упомянул wikicms, делает это автоматически. Если она по каким-то причинам не подходит, в вашем первом примере нужно заменить is_category() на in_category():
    http://codex.wordpress.org/Function_Reference/in_category

    is_category('кино') срабатывает, когда отображается сама рубрика «кино». in_category('кино') — когда отображается запись из этой рубрики.

    Сергей, как я вам признателен, вы просто не представляете!
    Целых 2 дня мучился.

    СПАСИБО ОГРОМНОЕ!

Просмотр 12 ответов — с 1 по 12 (всего 12)

Тема «не работает условие» закрыта для новых ответов.