WordPress - выделяем текущий элемент меню по-своему

Краткое описание решаемой мини-задачи

Очень часто HTML-верстальщики выделяют текущий элемент верстки главного меню сайта далеко не стандартными классами для CMS WordPress. Потому, чтобы сохранить исходный стиль приходится прибегать к небольшим ухищрениям так сказать.

Поиск решения: два способа

  1. Первый способ прост: перепишем файл исходного стиля верстки, приведя его к подобному виду:
    /* Выделим текущий элемент списка */
    li.current_page_item{
    ...
    }
    
    /* Выделим ссылку текущего элемента списка */
    li.current_page_item a{
    ...
    }
    
    
  2. Второй вариант заключается в том, чтобы поставить пару фильтров в "functions.php" целевой темы оформления:
    <?php
    function custom_active_item_class($link) {
      return str_replace('current_page_item', 'your current_page_item', $link);
    }
    
    add_filter('wp_nav_menu', 'custom_active_item_class');
    add_filter('wp_list_pages', 'custom_active_item_class');
    ?>
    Фильтры сработают, как для обычного меню, составленного из ссылок на страницы, так и для произвольного меню.

Пример в действии: снимок окошка моего браузера

WordPress активный элемент меню

Выводы о проделанных трюках

Личное моё мнение: первый вариант решения мне нравиться больше по той простой причине, что все-таки стили быстрее PHP. :)





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.