[Помогите] Класс для активной страницы меню

Тема в разделе "Wordpress", создана пользователем saylar_06, 22 июн 2014.

Модераторы: Sorcus
  1. saylar_06

    saylar_06 Создатель

    Регистр.:
    7 мар 2009
    Сообщения:
    42
    Симпатии:
    0
    Доброго времени суток! Сверстан шаблон, в идеале должно получиться вот так:
    HTML:
                        <a href="#" class="btn_tab fl_left" style="text-transform:uppercase">
                            <div class="btn_left"></div>
                            <div class="btn_right"></div>
                            БЛОГ                   
                        </a>
                           <div class="tab_split"></div>
    
    у меня получается так:
    HTML:
                        <a href="#">
                            <div class="btn_left"></div>
                            <div class="btn_right"></div>
                            sad
                        </a>
                            <div class="tab_split"></div>
    
    мой код меню:

    PHP:
    $mass_out_menu = array(
      
    'theme_location' => 'menu_top',
      
    'link_before' => "\n\t\t\t\t\t\t<div class=\"btn_left\"></div>\n\t\t\t\t\t\t<div class=\"btn_right\"></div>\n\t\t\t\t\t\t",
      
    'link_after' => "\n\t\t\t\t\t",
      
    'after' => "\n\t\t\t\t\t\t<div class=\"tab_split\"></div>",
      
    'container' => false,
      
    'echo' => false
      
    'items_wrap' => '%3$s',
      
    'depth' => 0,
    );

    print 
    strip_tagswp_nav_menu($mass_out_menu ), '<a><div>');

    так вот, стоит задача добавлять в тег <a> ---> style и class="btn_tab fl_left" вот только для активной страницы нужен класс class="btn_tab_on fl_left"
     
  2. yaski

    yaski

    Регистр.:
    21 фев 2010
    Сообщения:
    483
    Симпатии:
    288
    Непонятен вопрос. Та страница которая отображается и так является активной.
     
  3. Teceract

    Teceract

    Регистр.:
    15 фев 2009
    Сообщения:
    165
    Симпатии:
    75
    Я так понял, чтоб в меню в теге <a> был добавлен свой класс, а не стандартный

    Но в любом случае, если меню создается в админке и задается как "menu_top", то вордпресс определяет страницу и ставит класс в обертке current-menu-item
    В этот класс в файл style.css можно добавить и стиль, который вы написали ".current-menu-item a {text-transform: uppercase;}" а также в него можно вложить значения из btn_tab и fl_left
     
  4. saylar_06

    saylar_06 Создатель

    Регистр.:
    7 мар 2009
    Сообщения:
    42
    Симпатии:
    0
    это то понятно, а как мне это кодом определить? в меню у меня выводятся ссылки, я обрабатываю функцию wp_nav_menu и на выходе получаю одни лишь ссылки в теге <a> так вот в этот тег нужно засунуть style(для всех ссылок) и и класс(для активной ссылки)

    так точно, но я не совсем Вас понял, меню создается в админке но на выходе я ж его обрабатываю и мне нужно вставить в тег а свои классы которые уже описаны в style...
     
  5. Teceract

    Teceract

    Регистр.:
    15 фев 2009
    Сообщения:
    165
    Симпатии:
    75
    По поводу класса активной страницы в тег <a> я не видел, так как wp должен определить текущую страницу и задать ей класс активной, возможно можно настроить свой класс меню walker и задать необходимые параметры

    У Вас в массиве идет
    PHP:
    'echo' => false,
    если поменять false на true, то появится обертка вот в таком виде:
    HTML:
    <div class="nameclassmenu">
    <ul>
    <li class="current_page_item"><a href="#"><div class="btn_left"></div><div class="btn_right"></div>Главная</a></li>
    <li class="page_item page-item-2"><a href="#"><div class="btn_left"></div><div class="btn_right"></div>Пример страницы</a></li>
    </ul>
    </div>
    название класса div блока можно задать, если добавить в массив строку
    PHP:
    'menu_class' => 'nameclassmenu',
    вот такой вид будет в стиле
    HTML:
    .nameclassmenu .current_page_item a {color: red; font-weight: bold; text-transform: uppercase;}
    предлагаю такой способ как один из вариантов, а стили других классов (btn_left и btn_right) можно совместить с данным классом:
    .nameclassmenu .current_page_item a.btn_left {}
    .nameclassmenu .current_page_item a.btn_right {}
    а другие пункты меню будут иметь вот такой вид:
    .nameclassmenu .page_item a {}
     
    saylar_06 нравится это.