Как вывести рубрики в две колонки?

По умолчанию, функция wp_list_categories() способна выводить категории только в одну колонку. А что если вы хотите в две?

Можно попробовать наколдовать что-нибудь со стилями, а можно воспользоваться этим кодом:

<?php
$args = array(
	'title_li'=>'',
	'echo'=>0,
	'style'=>'none'
); 
// это обязательные параметры
$all_cats = explode("<br />",wp_list_categories($args));
$cat = count($all_cats) - 1;
for ($n=0;$n<$cat;$n++):
	if ($n<$cat/2):
		$left = $left.'<li>'.$all_cats[$n].'</li>';
	elseif ($n>=$cat/2):
		$right = $right.'<li>'.$all_cats[$n].'</li>';
	endif;
endfor;
?>
<ul class="left">
	<?php echo $left; ?>
</ul>
<ul class="right">
	<?php echo $right; ?>
</ul>

Вставьте это туда, где хотите вывести рубрики в две колонки. Не забудьте настроить обтекание элементов <ul> при помощи CSS.

ul.left, ul.right{
	display:block;
	float:left;
}

При помощи CSS-свойства float:left вы можете настроить вывод любого контента в две колонки (а не только рубрик WordPress).

Подпишитесь, чтобы раз в неделю получать свежие статьи с блога по email.

Смотрите также

Комментарии 20

  • Алекс5 ноября 2011 в 05:11 #

    а какие ещё аргументы от wp_list_categories поддерживаются?

  • Grigo14 ноября 2011 в 04:11 #

    Здравствуйте. Спасибо за полезный код.
    Перерыл весь Инет, работающий код нашел только у Вас, с категориями он отлично справляется, но не смог прикрутить его к подкатегориям.
    На странице категорий я вывожу только подкатегории данной категории и использую код:

    но все подкатегории выводятся в одну колонку.
    Поколдовал над Вашим кодом и получил вывод в четыре колонки, но выводятся все рубрики с подрубриками, а мне нужны только подрубрики определенной рубрики.
    Пожалуйста, подскажите, как совместить Ваш код с отрывком моего кога?

  • Grigo14 ноября 2011 в 04:11 #

    Код не прошел.
    Попробую так:

    wp_list_categories('orderby=name&amp;title_li=&amp;child_of='.$cat)
    • Миша15 ноября 2011 в 09:11 #

      ты забыл про echo=0&style=none;
      то есть я рекомендую изменить код следующим образом:

      wp_list_categories("orderby=name&title_li=&echo=0&style=none&child_of=$cat")
      • Grigo15 ноября 2011 в 20:11 #

        Благодарю, добрый человек :)
        Неделю мучился, даже танцы с бубном не помогали )
        Сейчас все заработало.
        Спасибо!

      • Роман1 августа 2012 в 23:08 #

        Добрый день!
        Очень нужна помощь по выводу подкатегорий к категории колонками, вот ставлю ваш код и заменяю

        wp_list_categories($args)

        на

        wp_list_categories($args)

        а выдает ошибку мол не верно. Спасибо за ваш ответ!

  • Роман1 августа 2012 в 23:08 #

    Ой на

    wp_list_categories("orderby=name&title_li=&echo=0&style=none&child_of=$cat")
  • Роман1 августа 2012 в 23:08 #

    Огромное спасибо, разобрался! Удачи вам!

  • Семён26 января 2013 в 19:01 #

    Подскажите, а две разные по дизайну категории, как вывести?

    • Миша27 января 2013 в 19:01 #

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

  • Серг24 ноября 2014 в 00:11 #

    Куда этот код вставлять?

  • Виктор26 августа 2015 в 18:08 #

    А как скрыть подкатегории????

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

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • alex morozov: Ура, спасибо! Все-таки я разобрался ! Сделал:

  • alex morozov: Сделал Класс добаляется даже если поле пустое

  • Vladislav: Лучше бы посоветовали изящное решение имеющейся проблемы.

  • alex morozov: Не очень понял. Я добавляю метабокс через класс, почти как у вас. class Desc_Meta_Box { private $screens = array(...

  • Миша: Метод тыка хорош, но оснвоы нужно знать в любом случае. Рекомендую почитать это.