Порядок вывода категорий в sidebar (WordPress)

[ ←Вернуться к стандартному виду ]

Печатная версия

За вывод ссылок в sidebar в WordPress отвечает wp_list_cats (для версии wp 2.0.x и младше) и wp_list_categories (для wp 2.1.x и выше).

Выбор параметров сортировки категорий в сайдбаре небольшой: по алфавиту или по id:

  1. sort_column=id и sort_column=name для wp_list_cats
  2. orderby=id и orderby=name для wp_list_categories

На данный момент я знаю 2 способа сортировки категорий в любом порядке.

Первый способ подходит, если у вас стоит локализация Макса maxsite.org. Плагин MaxSite add to Category class and menu order входит в русскую сборку wordpress 2.0.9, по этой же ссылке можно ознакомится с особенностями установки и настройки плагина.

Второй способ — плагин My Category Order. На данный момент плагин существует в трех вариантах: для версий wordpress 2.0.x и младше, 2.1 и 2.1.3—2.2 и работает на обоих русских сборках: maxsite.org и mywordpress.ru.

Активируем плагин, открываем свой sidebar.php и вносим в wp_list_cats или wp_list_categories (в зависимости от версии WordPress) дополнительный параметр sort_column=my_order, например, так:

<?php wp_list_cats('sort_column=my_order'); ?>

шдем в «Управление» — «My Category Order» и расставляем категории в нужном порядке. Вуаля!


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

  1. # Maxime (1) 09.06.2007 в 20:37

    Есть еще плагин Category Tagging:
    http://sw-guide.de/wordpress/plugins/category-tagging/
    он позволяет выводить категории в виде облака, правда этот плугин больше не поддерживается, но это не проблема, сейчас он работает, а потом можно и напильником подточить :)

  2. # Slaff (2) 09.06.2007 в 23:04

    Давайте говорить об актуальности - о WP2.1 и старше. Зачем использование различных плагинов (единичные случаи я исключаю), если есть такая прекрасная новая функция, как wp_list_categories().

    Если использовать ее с умом, то наличие плагинов для вывода категорий просто отпадает :).

    Для примера, приведу самый распространенный способ, который тут не фигурирует (вставляю картинку, потому что боюсь что комменты "съедят" теги):

    Выведит иерархический список категорий с подсчетом постов в каждой и заголовком h2. :)

  3. # sonika (66) 10.06.2007 в 17:36

    Ну, кому что актуально, а мне пока 2.0.10 по некоторым причинам :)
    Все это можно делать, да: с подкатегориями или без них, с учетом иерархии и количеством постов и т.д., облачком или списком.

    Картинки нет чего-то, но о чем речь понятно.

    Я написала этот пост, потому что на форумах wp не раз спрашивали о том, как, например, опустить в sidebar первую по списку категорию в самый низ, а все остальное оставить на своих местах. А как? шсключить из wp_list_cats (wp_list_categories) и вставить вручную в конец списка? Лучше уж плагином.

  4. # wmas (1) 10.07.2007 в 12:47

    Тоже боролся с сортировкой на своём блоге. У меня вордпрес старенький и потому может уже не актуально, но свою проблему я решил без всяких плакинов, просто SQL запрос подрехтовал CONVERT вначале binary потом utf8 для переменной $sort_column.

  5. # sonika (66) 11.07.2007 в 10:42

    2wmas
    Хм… Вы меня смущаете такими словами

    CONVERT вначале binary потом utf8 для переменной $sort_column

    :)))

  6. # шинкарев (3) 30.07.2007 в 01:39

    sonika, помогите пожалуйста. Всё сделал, как Вы велели. То есть - установил плагин My Category Order и внес изменения в php. Но там что-та поломалось.
    http://khandyga.ru/
    Сообщение под категориями:

    WordPress database error: [Unknown column 'cat_my_order' in 'order clause']
    SELECT * FROM wp_categories WHERE cat_ID > 0 ORDER BY cat_my_order ASC

    При этом, категории видны, порядок только не строится. Что делать?

    WP 2.1.3.
    Сборка mywordpress.ru.

  7. # StealsMan (1) 13.08.2007 в 02:01

    ш у меня такой же трабл, как у "шинкарев". Буду благодарен за подсказку - в чем тут дело?

  8. # sonika (66) 13.08.2007 в 14:49

    Спросите у Макса в этом посте, он лучше меня в database эррорах разбирается, а лучше в форум эту тему вынести, потому что догадок по поводу данной ошибки нет, у меня плагин работал на обеих сборках (тестировала на локалхосте).

  9. # шинкарев (3) 14.08.2007 в 11:55

    По моему, Макс в отъезде. Мой комментарий там уже сутки не появляется. Ничего скачать с его сайта не могу. Ладно, подождём. Спасибо за отклик.

  10. # MoHaX 15.08.2007 в 00:25

    ш у меня такой же трабл, как у “шинкарев”. мож кто чо подскажет

  11. # Дед (4) 23.08.2007 в 02:15

    Предлагаю способ номер три -
    выводите список рубрик в сайдбаре ХТМЛом ии не паритесь.

  12. # шинкарев (1) 23.08.2007 в 19:25

    В коде вместо "wp_list_cats" написал "wp_list_categories". Всё.

  13. # sonika (66) 24.08.2007 в 02:20

    Предлагаю способ номер три -
    выводите список рубрик в сайдбаре ХТМЛом ии не паритесь.

    Ну да, и каждый раз в код лазить, чтобы рубрику новую добавить :)

  14. # Дед (4) 24.08.2007 в 17:06

    Ну да, и каждый раз в код лазить, чтобы рубрику новую добавить :)

    Соника, но согласитесь ведь, что способ очень гибкий, да и не перегружает сервер лишними плагинами.
    Кроме того, можно 1 раз определить список рубрик в переменной, чтобы потом вставить эту переменную во все шаблоны?

  15. # sonika (66) 24.08.2007 в 20:02

    Дед:
    Соника, но согласитесь ведь, что способ очень гибкий, да и не перегружает сервер лишними плагинами.

    В этом плане Вы правы, но если блог/сайт не для себя, а на заказ, то что будет делать заказчик? Такой, среднестатистический, аккуратно одним пальчиком набирающий тексты (перед этим искавший нужную букву на клавиатуре секунд 5) и каждую минуту заглядывающий в распечатку-памятку? Может я чуть сгустила краски, но это очень близко :)

    Что-то я сомневаюсь, что ему понравится идея «править шаблоны» в случае добавления новой рубрики… А делать блог так, чтобы владелец потом и пукнуть самостоятельно не мог — это как-то непорядочно :)

  16. # Ingvar 26.08.2007 в 07:07

    Ничего не знаю по конкретному плагину, но по поводу сообщения:

    WordPress database error: [Unknown column ш?cat_my_order’ in ш?order clause’]
    SELECT * FROM wp_categories WHERE cat_ID > 0 ORDER BY cat_my_order ASC

    могу сказать следущее: либо в таблице wp_categories нет поля cat_my_order, либо поле, куда заносится порядок следования, называется не cat_my_order, а как-то иначе.

  17. # Дед (4) 26.08.2007 в 16:27

    В этом плане Вы правы, но если блог/сайт не для себя, а на заказ, то что будет делать заказчик? Такой, среднестатистический, аккуратно одним пальчиком набирающий тексты (перед этим искавший нужную букву на клавиатуре секунд 5) и каждую минуту заглядывающий в распечатку-памятку? Может я чуть сгустила краски, но это очень близко :)
    Что-то я сомневаюсь, что ему понравится идея «править шаблоны» в случае добавления новой рубрики… А делать блог так, чтобы владелец потом и пукнуть самостоятельно не мог — это как-то непорядочно :)

    Соника, вы просто прелесть ;-)

  18. # Dimox (1) 05.09.2007 в 16:26

    Соника, благодарю за информацию об этом полезном плагине.
    Вот наконец-то он мне и пригодился :)

  19. # b52 (4) 29.09.2007 в 16:39

    не хочу вставлять свои 5 копеек во мнение авторитетов, но для начала разберитесь с вашими виджетами в сайдбаре.

    Некоторые дизайны имеют виджет, которые содержджат встроенную настройку категорий

  20. # Businesstan.Com (2) 22.10.2007 в 19:34

    А я еще когда не знал, что такое плагин и как его суют,
    я сразу же отсортировал все категории по своему:

    001. Хочу видеть эту категорию первым в списке
    002. Милиция
    003. Скорая
    100. Оставим для других
    200. А вдруг еще что-нибудь придумаю
    300. Лет тому назад

    В общем, прямо в названиях категорий ставил номера при добавлении.
    А потом узнал, что такое плагин.
    Но решил ничего не изменять.
    Оставил как есть :)

  21. # Businesstan.Com (2) 22.10.2007 в 19:36

    кстати, а почему у тебя нет "поиск" на сайте?

  22. # sonika (66) 29.10.2007 в 23:51

    кстати, а почему у тебя нет “поиск” на сайте?

    Потому что ищет плохо :) У меня много чего нет в блоге, и времени на свой блог вот тоже нет… :(

  23. # Megos (1) 16.11.2007 в 15:55

    А этот плагин может подкатегории создавать?

  24. # Hajo (3) 20.01.2008 в 16:15

    у меня этот плагин работать не хочет, выдает ошибку

    WordPress database error: [Unknown column 'cat_order' in 'order clause']
    SELECT * FROM wp_categories WHERE cat_ID > 0 ORDER BY cat_order ASC

  25. # sonika (301) 20.01.2008 в 17:36

    Hajo, значит Вам не повезло, т.к. на странице плагина есть версии для всех версий WordPress включая wp 2.3.2

  26. # Hajo (3) 20.01.2008 в 18:04

    Этот плагин работает только с рубриками в сайдбаре или со страницами тоже?

  27. # sonika (301) 20.01.2008 в 18:33

    Этот плагин работает только с рубриками в сайдбаре или со страницами тоже?

    Слушайте, Вы меня нервируете. Разве слово Category в названии плагина ни о чем не говорит? Где на данной странице или странице плагина Вы встретили слово Страницы (Pages)? Даже в заголове этого поста о сказано о сортировке «КАТЕГОРшЙ».

  28. # Пинк (2) 12.03.2008 в 12:48

    Спасибо за наводку:)
    шнтересный реализованный функционал. Положил в копилку на вырост.

  29. # Макс 19.04.2008 в 21:08

    Всего категорий штук 15, а выводит только две. В чем засада?

  30. # Макс 19.04.2008 в 21:21

    Фссеее! Разобрался.

  31. # Сергей (1) 30.07.2008 в 22:36

    Соня, добрый вечер. Задавал тот же вопрос Максу с maxsite, задам и вам.

    Скачал обновлённый плаг, всё сделал, установил, по инструкции, прилагаемой в архиве всё прописал в sidebar.php, активировал его. Казалось бы - УРА!... Но вот как бы я не двигал статьи, как бы я их местами не менял - на сайте изменений в их расположении не вижу =( Как быть? Заранее спасибо.

  32. # sonika (301) 31.07.2008 в 00:58

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

  33. # Михаил 27.11.2008 в 22:58

    Здравствуйте Соня.
    Не попадался ли вам плагин который высталяет разное количество постов на глвной, в категорях, в архивах (до перехода на следущую стр.).
    Мне однажды попадался но я его не скачал а вот теперь жалею очень уж нужен.

  34. # Dani (2) 17.12.2008 в 23:58

    Привет. ну с wp_list_cats все понятно. но Подскажи плиз с помощью какого плагина можно сделать - странички как у тебя под , в main_menu

    * wordpress
    * и-ха-ха-ха!
    * Маразмы
    * Олимпиада
    * Про Сочи
    * Работа
    * Разное
    * Что нового

    просто никак не найду где редактировать wp_list_pages (хотел перенести все страницы по горизонтали а никак невыходит.... ... поэтому решил пойти более простым путем и узнать какой плагин используешь ты =)заранее спасибо

  35. # sonika 18.12.2008 в 11:21

    Dani, ловкость рук и никакого плагина, чистый css

  36. # Dani (2) 18.12.2008 в 23:59

    а ну тогда все понятно спасибо за подсказку

  37. # jump (3) 14.02.2009 в 17:53

    Расскажите пожалуйста, как сделать RSS с картинками, как у Вас для фотоблога, ума не приложу. У меня фотоблог skokov.ru. Так он RSS без картинок отдаёт, а без картинок RSS порой неинформативен, т.к. в фотоблоге текста может и не быть.

  38. # Андрей (1) 12.03.2009 в 15:34

    Как создать подкатегории? Расскажи пожалуйтса, буду благодарен.

  39. # AlexPTS 06.04.2009 в 21:02

    Спасибо за обзор, пригодился плагин ))

  40. # Gorgik (2) 20.05.2009 в 15:18

    А это все, сказанное в посте, применимо для WP 2.7.1? Прошу ответить!!

  41. # sonika (301) 25.05.2009 в 13:16
  42. # Gorgik (2) 25.05.2009 в 13:22

    Ага, намек понял... Вернее, прочитал. Спс!

  43. # Eddy (1) 15.07.2009 в 13:01

    Здравствуйте,

    Пожалуйста, помогите ламеру. У меня ВП 2.8.1, скачал, установил и активировал плагин. В сайтбаре у меня вот такая строка:

    <?php wp_list_categories('show_count=1&title_li=Categories'); ?>

    Что мне нужно в ней поменять, чтобы плагин заработал? А то после добавления виджета "список отсортированных рубрик", он появляется, но пишет "нет рубрик".

    Заранее большое спасибо!

  44. # Артем (1) 09.10.2009 в 22:04

    аналогичная проблема :
    после добавления виджета «список отсортированных рубрик», он появляется, но пишет «нет рубрик».

  45. # Alksprin 02.01.2010 в 23:25

    Добрый день!У меня есть 3 сайдбара, вопрос, как сделать 3 шаблона чтобы на каждом было по одному сайдбару?

  46. # Blogpressa (1) 20.03.2010 в 21:24

    Для решения этой задачи проще всего использовать плагин или отдельно прописывать в какой последовательности отображать категории.

  47. # Дмитрий (1) 04.06.2010 в 19:56

    Нужно ли  этот  код в сайт баре прописывать, у меня и так вроде все заработало.. (имею в виду My Category Order)

  48. # Максим 03.11.2010 в 18:08

    Здравствуйте, помогите решить задачку. wp 2.9.2 ситуация в следующем. Имеем шаблон двух колоночный одна для записей, вторая для sidebar. Два sidebar, один sidebar1 второй sidebar2. Первый располагается стандартно в левой колонке, второй располагается во второй колонке над записями.  Суть задачи в следующем sidebar2 служит для вывода формы поиска по сайту над записями, но только в single.php, index.php, arhives.php
    Для статистических страниц (page.php) выводится аналогичный sitebar2 но уже с добавленной в него текстовой информацией типа приветствия и небольших инструкций+поиск. Все это я реализовал путем создания sidebar3. Прописав нужные инструкции во всех необходимых файлах. Все работает отлично. Для записей, категорий свой sidebar над ними, для страниц свой соответственно.
    Замечу, что изменен режим вывода информации на сайте на статичную главную страницу.
    Теперь вот вопрос и собственно поиск решения, как осуществить чтобы данный sitebar над страницей выводился только для одной статистической страницы по ID страницы, в данном случае для главной (в нем привествие и т.д и собственно для остальных статистических страниц он не нужен).
    Подскажите пожалуйста, я понимаю, что нужно всего то прописать в page.php нужную инструкцию типа
    <?php get_sidebar(); ? >
    Но не могу понять, как это реализовать в таком коде page.php :

    <?php get_header(); ?>
    <div class="art-contentLayout">

    <?php include (TEMPLATEPATH . '/sidebar1.php'); ?><div class="art-content">
    <?php include (TEMPLATEPATH . '/sidebar2.php'); ?>

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div class="art-Post">
    <div class="art-Post-tl"></div>
    <div class="art-Post-tr"></div>
    <div class="art-Post-bl"></div>
    <div class="art-Post-br"></div>
    <div class="art-Post-tc"></div>
    <div class="art-Post-bc"></div>
    <div class="art-Post-cl"></div>
    <div class="art-Post-cr"></div>
    <div class="art-Post-cc"></div>
    <div class="art-Post-body">
    <div class="art-Post-inner art-article">
    <?php ob_start(); ?>
    <h2 class="art-PostHeader">
    <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(__('Permanent Link to %s', 'kubrick'), the_title_attribute('echo=0')); ?>">
    <?php the_title(); ?>
    </a>
    </h2>
    <?php $metadataContent = ob_get_clean(); ?>
    <?php if (trim($metadataContent) != ''): ?>
    <div class="art-PostMetadataHeader">
    <?php echo $metadataContent; ?>

    </div>
    <?php endif; ?>
    <div class="art-PostContent">

    <?php if (is_search()) the_excerpt(); else the_content(__('Read the rest of this entry &raquo;', 'kubrick')); ?>
    <?php if (is_page() or is_single()) wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

    </div>
    <div class="cleared"></div>
    <?php ob_start(); ?>
    <?php $icons = array(); ?>
    <?php if (!is_page()): ?><?php ob_start(); ?><img src="<?php bloginfo('template_url'); ?>/images/PostCategoryIcon.png" width="18" height="18" alt="" />
    <?php printf(__('Posted in %s', 'kubrick'), get_the_category_list(', ')); ?>
    <?php $icons[] = ob_get_clean(); ?><?php endif; ?><?php if (!is_page() && !is_single()): ?><?php ob_start(); ?><img src="<?php bloginfo('template_url'); ?>/images/PostCommentsIcon.png" width="17" height="15" alt="" />
    <?php comments_popup_link(__('No Comments »', 'kubrick'), __('1 Comment »', 'kubrick'), __('% Comments »', 'kubrick'), '', __('Comments Closed', 'kubrick') ); ?>
    <?php $icons[] = ob_get_clean(); ?><?php endif; ?><?php if (0 != count($icons)): ?>
    <div class="art-PostFooterIcons art-metadata-icons">
    <?php echo implode(' | ', $icons); ?>

    </div>
    <?php endif; ?>
    <?php $metadataContent = ob_get_clean(); ?>
    <?php if (trim($metadataContent) != ''): ?>
    <div class="art-PostMetadataFooter">
    <?php echo $metadataContent; ?>

    </div>
    <?php endif; ?>

    </div>

    <div class="cleared"></div>
    </div>
    </div>

    <?php comments_template(); ?>
    <?php endwhile; endif; ?>

    </div>

    </div>
    <div class="cleared"></div>

    <?php get_footer(); ?>
     
    sidebar1 обязателен для всех страниц, а sidebar2 нужно вывести только по ID

  49. # Виталий (5) 08.01.2011 в 00:19

    Можно вывести весь список категорий на отдельную страницу, как здесь?
    http://www.jennyreviews.com/categories/

  50. # дядя Валера, эсквайр (1) 31.05.2011 в 11:06

    Ох и любите вы все простые дела делать сложными путями, я вывел категории до смешного просто, перейдите по ссылке:    http://udiadivalery.com/2011/05/vyvod-kategorij-wordpress/

Подписаться на фид.
RSS комментариев к этой записи. | TrackBack URI

Написать комментарий


Все саттелиты — в топку! Даже не сомневайтесь. Для вопросов о вордпресс не по теме поста есть два русскоязычных форума по wordpress.

[ ←Вернуться к стандартному виду ]

Печатная версия