[Помогите] Активная страницы

Тема в разделе "Wordpress", создана пользователем Skorp1oN, 2 апр 2010.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. Skorp1oN

    Skorp1oN

    Регистр.:
    16 дек 2007
    Сообщения:
    368
    Симпатии:
    25
    Добрый день!
    Есть шаблон для WP. Там кнопки и ссылки к ним прописаны вручную (т.е. например <li><a href="/">Главная</a></li>).
    Мне бы хотелось, чтобы когда человек находится на определенной странице (например на главной), то эта кнопка видоизменялась. Для этого сделал класс "active". Теперь надо его как-то прописать для активной страницы...
    Вот нашел хорошую идею:
    PHP:
    <li <?php if(is_page('КОРОТКАЯ_ССЫЛКА_СТРАНИЦЫ')) echo ' class="active"'?>><a href="/КОРОТКАЯ_ССЫЛКА_СТРАНИЦЫ/">БЛА-БЛА</a></li>
    Только у меня почему-то она не хочет работать :(
    Кто подскажет, почему не работает, или может есть другой способ решения проблемы?:confused:
    Спасибо.
     
  2. mydooms

    mydooms Постоялец

    Регистр.:
    22 фев 2008
    Сообщения:
    105
    Симпатии:
    26
    В зависимости от того, что это за страницы. Если это главная - то нужно использовать функцию is_home(:(
    Код:
    <li <?php if(is_home() echo ' class="active"'; ?>><a href="/КОРОТКАЯ_ССЫЛКА_СТРАНИЦЫ/">БЛА-БЛА</a></li>
    Если это группа страниц (определённая категория), то нужно юзать ф-ю is_category('id'), где id - айди категории (в админке можно посмареть).

    Если нужен отдельный пост выделить - то это функция is_single('id')

    Вообще все функции условия можно посмотреть тут: http://codex.wordpress.org/Conditional_Tags

    В твоём примере у тебя скорее всего не работает изза того, что ты в параметрах функции is_page() передаёшь не ID страницы, а ссылку на неё.
     
    Skorp1oN нравится это.
  3. Skorp1oN

    Skorp1oN

    Регистр.:
    16 дек 2007
    Сообщения:
    368
    Симпатии:
    25
    Вот появилась другая проблема...
    В общем, допустим есть снова прописанный класс avtive в css, только теперь идет просто вывод страниц <?php wp_list_pages('title_li'); ?>. Как сделать так, чтобы когда человек нажимал на одну из страниц и попадал на нее, то к ссылке на эту страницу, погружался class="active"?
    Т.е. нужно чтобы человек видел на какой странице он находится.
    Заранее большое спасибо.
     
  4. Shatter

    Shatter Создатель

    Регистр.:
    8 июн 2009
    Сообщения:
    32
    Симпатии:
    1
    Для этого придется писать функцию, для каждой страницы оператор if else.
    Собственно Вам наводку уже дали - http://codex.wordpress.org/Conditional_Tags
     
  5. Skorp1oN

    Skorp1oN

    Регистр.:
    16 дек 2007
    Сообщения:
    368
    Симпатии:
    25
    Да наводку дали, только я не могу понять что к чему) И что за функцию надо писать... Возможно кто-то уже такое реализовывал, или знает как сделать?
     
  6. Skorp1oN

    Skorp1oN

    Регистр.:
    16 дек 2007
    Сообщения:
    368
    Симпатии:
    25
    А может харе посты набирать? Если бы было все понятно, с х*яли бы я спрашивал? Логично?
    Причем я только что скачал тему и там все вроде как, реализовано без функций т.к. в functions.php я все потер и в хеадере тоже... Получается что просто таком макаром все работает:
    PHP:
    <div id="nav">
    <ul>
     <?php wp_list_pages('title_li'); ?>
        </ul>
        </div>
    сейчас вот смотрю css и пытаюсь разобраться.
     
  7. Skorp1oN

    Skorp1oN

    Регистр.:
    16 дек 2007
    Сообщения:
    368
    Симпатии:
    25
    Короче говоря, если кому-то интересно...
    Решается все очень просто!
    За активность ссылки, отвечает класс .curent_page_item (уже забито в cms). По этому просто надо в стилях задать этот класс как надо и все ;)
     
Статус темы:
Закрыта.