• День добрый.

    Итоговый код должен выглядеть примерно так:

    <ul>
       <li class="section">Рубрика 1</li>
       <li><a href="#">Рубрика 1.1</a></li>
       <li><a href="#">Рубрика 1.2</a></li>
       <li><a href="#">Рубрика 1.3</a></li>
       <li class="section">Рубрика 2</li>
       <li><a href="#">Рубрика 2.1</a></li>
       <li><a href="#">Рубрика 2.2</a></li>
       <!-- и т.д. -->
    </ul>

    Как написать это в шаблоне?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Atrax

    (@atrax)

    Ethical engineer

    На самом деле, вывод рубрик в иерархической форме немножко другой:

    <ul>
       <li>Рубрика 1
          <ul>
             <li><a href="#">Рубрика 1.1</a></li>
             <li><a href="#">Рубрика 1.2</a></li>
             <li><a href="#">Рубрика 1.3</a></li>
          </ul>
       </li>
       <li>Рубрика 2
          <ul>
             <li><a href="#">Рубрика 2.1</a></li>
             <li><a href="#">Рубрика 2.2</a></li>
          </ul>
       </li>
       <!-- и т.д. -->
    </ul>

    Форматировать такое намного проще.

    Да, пожалуй. У меня просто вёрстка была уже готовая, но переделать — дело нехитрое.

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

    Сейчас так сделано, выводит всё ссылками:

    <ul>
       <?php wp_list_categories('orderby=order&hide_empty=0&title_li=0'); ?>
    </ul>

    Полез в loop.php и заблудился там. Где там вывод категорий? Или не там надо искать?

    UPD
    В ту же кучу: на странице категории тоже не должно быть ссылки на категорию.

    Сделал себе меню, которое нужно было. Запостю тут. Может, надо кому будет. Наверно, криво, ну да фиг с ним.

    <ul>
    <?php /* вывод категорий */
       $sections = get_categories('orderby=order&hide_empty=0&parent=0'); /* рубрики верхнего уровня выводятся без ссылок */
       for($i = 0; $i < count($sections); $i++) {
          echo '<li>' . $sections[$i]->name . '<ul>';
    
          /* вывод дочерних рубрик */
          $section_id=$sections[$i]->cat_ID;
          $categories = get_categories("orderby=order&hide_empty=0&child_of=$section_id");
          for($j = 0; $j < count($categories); $j++) {
             $cat = $categories[$j];
             $cat_id = $cat->cat_ID;
             $name = $cat->name;
             echo '<li><a';
             if(!is_category($cat_id)) { /* На странице категории нет ссылки на категорию */
                echo ' href="' . get_category_link($cat_id) . '" title="Перейти к категории ' . $name . '"';
             }
             echo '>' . $name . '</a></li>';
          }
          echo '</ul>';
       }
    /* конец вывода категорий */ ?>
    </ul>

    Код получается примерно такой же, как во втором посте темы. Разница только в том, что на странице категории не будет ссылки на категорию (код на ней выглядит как <li><a>Активная категория</a></li>)

    (!) Имейте в виду, что у меня стоит плагин My Category Order. Если его нет, нужно в коде orderby=order заменить на другой способ упорядочивания.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Разные стили для рубрик разной вложенности» закрыта для новых ответов.