Сортировка рубрик в WordPress

06.10.2010 by Константин
Комментировать »
Сортировка рубрик

Сортировка рубрик

Начав настраивать WordPress под себя столкнулся с несколькими вопросами, один из них был такой: “Каким образом можно упорядочить рубрики (категории) в WordPress?“. Покопавшись в интернете нашел несколько решений данного вопроса.

Решение 1. Плагин MY Category Order.

Если вы не разбираетесь в php и плохо знаете саму структуру WordPress, то оптимальным для вас будет установка плагина. Наиболее популярным является My Category Order. Плагин очень простой т.к. он действует по системе Drag-and-drop, т.е. после его установки вы сможете сортировать рубрики просто перетаскивая их мышкой. Как установить и активировать плагин можно посмотреть в статье “WordPress первые шаги”.

плагин сортировки рубрик в списке MyCategoryOrder

плагин сортировки рубрик в списке MyCategoryOrder

Решение 2. Wp_list_categories для WordPress.

Установив данный плагин у себя я с интересом увидел что он… не работает (скорее всего просто моя тема ему не подошла). Выяснять истинную причину и копаться в коде плагина особого желания не было, поэтому я пошел другим путем, а именно изменением PHP кода самого движка WordPress. И так.

За вывод списка рубрик в WordPress отвечает функция wp_list_categories, если вы хотите редактировать свою тему то необходимо править файл sidebar.php в папке с темой, если сам движок, то функцию ищем файл wp-includes/default-widgets.php.

Аргументы функции wp_list_categories:

  • orderby – устанавливает сортировка по категориям, может быть равна id (сортирует по id рубрки), name (по имени), slug (по ярлыку), count (по количеству записей);
  • order – устанавливает порядок сортировки, значения – ASC (прямой порядок), DESC (обратный порядок);
  • title_li – задает заголовок для списка рубрик;
  • number – ограничивает количество выводимых рубрик;
  • show_count – выводит количество статей в рубрике;
  • show_last_updated – выводит дату последнего обновления;
  • hide_empty – скрывать пустые рубрики;
  • hierarchical – влияет на то будит ли список иерархическим или нет – True (иерархический), False (не иерархический);
  • use_desc_for_title – выводит описание рубрики в качестве ее заголовка;
  • include – выводит в список только указанные рубрики (указывается id рубрик через запятую);
  • exclude – обратный параметр, исключает из списка, указанные рубрики;
  • exclude_tree – исключения указанную ветку рубрики;
  • child_of – вывод только под рубрики для заданной родительской рубрики;
  • depth – указывает количество уровней для под рубрик для вывода;
  • style – задает стиль оформления, значения – list (список), none (переход строки);
  • show_option_all – отображает ссылка на все рубрики, если в качестве стиля отображения выбран список;
  • feed – отображение ссылку на wordpress rss фид для категорий;
  • feed_type – тип фида;
  • feed_image – картинка для значка rss;
  • echo – выводит рубрики, по умолчанию равен True.

Аргументы в функции разделяются знаком & (and).

Несколько примеров использование функции wp_list_categories для WordPress:

  1. wp_list_categories('orderby=id&show_count=1&title_li=');
    Функция выведет список рубрик отсортированных по id, с количеством постов для каждой рубрики и с пустым заголовком списка.
  2. wp_list_categories('orderby=count&order=desc&exclude=1,2,3');
    Функция выведет список рубрик отсортированных по количеству постов в рубрики, начиная с самого меньшего количества, в список не попадут рубрики id которых равны 1,2 и 3.

В сети так же встречались рекомендации по исправлению php кода в файле wp-include/category.php, но они распространяются только если происходит кривая сортировка из-за использования UTF-8.

В моем случае в файле sidebar.php я просто не обнаружил эту функцию и пришлось править сам движок, результат вы видите на сайте.

Читайте так же:


1 звезда2 звезды3 звезды4 звезды5 звезд (3 голосов, средний: 3.67 из 5)
Загрузка ... Загрузка ...
Распечатать запись Распечатать запись
Реклама

10 комментариев(ия)

  1. Денис says:

    Да, а у меня тема выводит рубрики в верхнем гориз. меню и как быть, как отсортировать или же исключить

  2. Константин says:

    Принцип вывода и функции должны быть те же что и в боковой колонке. Только найти эту функцию попробуйте в файле header.php вашей темы.

  3. Sashko says:

    эта строка выводит категории с описанием в качестве title, а как сделать без описания, т.е. с пустым title для ссылки, чтобы при наведении мышки на ссылку не выводилось описание категории?

  4. Константин says:

    правим файл classes.php в директории wp-include

    Ищем функцию start_el в ней есть условие

    if ( $use_desc_for_title == 0 || empty($category->description) )
    $link .= 'title="' . sprintf(__( 'View all posts filed under %s' ), $cat_name) . '"';
    else
    $link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"';

    В зависимости от того как у вас до этого был настрое вызов функции Wp_list_categories редактируем либо первую, либо вторую строчку с $link .=

    прописываем $link .= ‘ ‘ ;

    Если поможет, отпишись, плиз.

  5. Спасибо! 3 дня искал решение!!.не хотел лезть в движок, но… потом не мог найти эту функцию. другие авторы указали другие файлы. и наконец поправил в движке. чуток подкрутил, что бы красиво и… вуаля!

  6. Константин says:

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

  7. DarkNeo says:

    “В сети так же встречались рекомендации по исправлению php кода в файле wp-include/category.php, но они распространяются только если происходит кривая сортировка из-за использования UTF-8.” – вот я столкнулся с такой проблемой и не могу найти решение… что именно надо править в файле.. так как идет кривая сортировка и рубрик, и статей…

  8. Татьяна says:

    Респект за инфу! Долго искала, как изменить порядок рубрик. Все пишут о плагине My Category Orders, а он – собака такая – не работает на моей теме. Пришлось помучаться, чтобы найти эту статью. Спасибо, Вы меня выручили!

  9. Константин says:

    Рад что кому-то смог помочь. Процветания вашему блогу.

  10. Роман says:

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

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