Интересные статьи

Создание навигации “волшебная... Такой “скользящий” стиль навигации существует довольно давно, мне всего лишь было нужно изменить...

Readmore

15 регулярных выражений PHP в помощь... Регулярные выражения – это очень полезный инструмент для разработчиков. С их помощью можно находить,...

Readmore

Создание формы со скользящими... Пару недель назад, я читал статью Люка Вроблевски. Для тех, кто еще не слышал о нем, Люк -  автор...

Readmore

Анимация jQuery: изучение за 7 шагов Небольшой штрих анимации может украсить любой, скучный интерфейс. В сегодняшней статье, вы узнаете,...

Readmore

Фантастическая CSS3 лайтбокс... С удовольствием принимаю эстафету по обзору полезных зарубежных ресурсов, предложенную блоггером...

Readmore

Очередной блог фрилансера Rss

Выделяем активные страницы в WordPress

Дата публикации : 27-01-2009 | в рубрике : wordpress

Метки: , , ,

5

pages

Название статьи говорит само за себя, сегодня я хочу рассказать как сделать в WordPress довольно простую, но все же весьма полезную функцию – выделение активной страницы.

Вы удивитесь, насколько просто и легко можно реализовать это в WordPress, дело в том что здесь для этого уже все предусмотрено, вам фактически нужно только прописать в css-файле стиль активной страницы.

Разберем это на простом примере. Ниже приведен небольшой фрагмент кода, для отображения навигации по страницам в WordPress.

<div id="menu">
   <ul>
      <li><a href="<?php echo get_settings('home'); ?>">Home</a></li>
      <?php wp_list_pages('title_li=&depth=1'); ?>
   </ul>
</div>

Теперь, если сохранить страницу как html, или посмотреть фаербагом, мы увидим примерно следующее:

<div id="menu">
   <ul>
      <li><a href="http://example.com/">Home</a></li>
      <li class="page_item"><a href="http://example.com/page-1/" title="Page 1">Page 1</a></li>
      <li class="page_item"><a href="http://example.com/page-2/" title="Page 2">Page 2</a></li>
   </ul>
</div>

Обратите внимание, что класс page_item, присваивается только ссылкам, вызванным функцией wp_list_pages, то есть фактически последующие изменения не коснутся ссылки на главную страницу.

Далее, если мы перейдем по ссылке на другую страницу, код html измениться следующим образом:

<div id="menu">
    <ul>
       <li><a href="http://example.com/">Home</a></li>
       <li class="page_item"><a href="http://example.com/page-1/" title="Page 1">Page 1</a></li>
       <li class="page_item"><a href="http://example.com/page-2/" title="Page 2">Page 2</a></li>
    </ul>
</div>

То есть, к текущей активной странице добавляется класс «current_page_item».  А дальше как говорится дело техники, достаточно назначить соответствующий стиль этому классу в css-файле:

#menu ul li.current_page_item {
background: #4A7EB8;
}

В результате, мы получили выделение любой текущей активной страницы (кроме главной) светло-синим цветом (как на картинке в примере).

Если же вам нужно, чтобы главная страница также отмечалась в качестве активной, для этого нужно написать немного php-кода:

<div id="menu">
  <ul>
       <li class="<?php if (is_home()) { echo "current_page_item"; } ?>">
          <a href="<?php echo  get_settings('home'); ?>">Home</a>
      </li>
      <?php wp_list_pages('title_li=&depth=1'); ?>
  </ul>
</div>

В вышеприведенном коде, задействован условный тег Woprdpress is_home(), который проверяет является ли текущая страница домашней, то есть главной, и если это условие выполняется, то к ней также добавляется класс current_page_item.

С помощью условных тегов WordPress, можно делать и другие интересные вещи, но об этом мы поговорим в следующей статье.

Вольный перевод статьи: WordPress: Active Page Tabs

Похожие записи

Комментарии: (5)

Спасибо, буду разбираться

Спасибо большое за описанный пример. Но мне пришлось в дописывать в конец выражения в CSS «a». Без этого не хотело работать.

#menu ul li.current_page_item a {
background: #4A7EB8;
}

В общем-то это немного странно, а попробуйте записать вот так:

#menu li.current_page_item{
background: #4A7EB8;
}

и если после этого заработает, то это видимо моя вина, ul здесь возможно лишний.

dreamhelg, убрал ul, все равно работает только тогда, когда в конце a добавляю

[...] This post was mentioned on Twitter by Виталий Кулёв. Виталий Кулёв said: RT @ilya_kochnev: Выделяем активные страницы в WordPress http://dreamhelg.ru/2009/01/wordpress-active-page/ Помогла статья однажды… [...]

Оставьте комментарий