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

Рубрики

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

Сортировка рубрик в сайдбаре с помощью плагина

Первое на что я наткнулся, это сортировка рубрик WordPress с помощью плагина MyCategoryOrder, но я еще помню, что прошлый раз он мне не помог и потому в этот раз, я не стал терять на него времени. Устанавливается плагин стандартно, и позволяет сортировать рубрики путем перетаскивания их мышкой вверх-вниз, как показано на рисунке.

плагин MyCategoryOrder

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

К тому же, немаловажным остается тот факт, что много плагинов начнут тормозить работу сайта, а сортировку рубрик я планировал осуществить единожды. И что мне потом делать с тем плагином? Он будет только мешать, отвлекать и тормозить.

Сортировка рубрик в сайдбаре путем подмены виджета

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

Виджет рубрик или список ссылок

Сортировка рубрик с помощью функции wp_list_categories

А искал я сортировку рубрик с помощью функции wp_list_categories. Функция wp_list_categories позволяет отсортировать рубрики (праметр ‘orderby‘) по порядковому номеру, присвоенному при их создании (ID), имени (name), ярлыку (slug), количеству постов (count).

Проще всего нам, думаю, влиять на ярлык рубрик, поэтому я решил сортировать по ярлыку. Для этого необходимо изменить ярлыки рубрик в алфавитном порядке будущей последовательности рубрик. С этой целью предлагаю использовать числа. Т.е., Давать ярлыки рубрикам начинающиеся с чисел. Например: 10-rybrika4, 20-rybrika1, 30-rybrika7 и т.д. Через десяток, чтобы оставить алфавитное место для подрубрик или позже вставленных рубрик.

И здесь, внимание! Ярлык — это часть url рубрики, и их изменение может принести некоторый вред сайту, где рубрики проиндексированы поисковиками. После изменения нужно поставить редирект со старых url на новые. А чтобы с этим не заморачиваться, лучше это предусмотреть с момента создания сайта и давать ярлыки рубрикам уже в алфавитной последовательности.

Теперь, когда ярлыки в логической последовательности, находим на хостинге файл: ../wp-includes/category-template.php и редактируем в нем function wp_list_categories, назначив параметру orderby переменную slug. Должен получиться вот такой код:

код сортировки рубрик

Для сортировки в обратном алфавитном порядке ‘order’ => ‘DESC’.

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

Сортировка рубрик в шапке сайта

Я начал рыть землю дальше, посмотрел пару шаблонов в Редакторе и нашел похожее в header.php. Если у вас есть рубрики в шапке сайта, то скорее всего их функция тоже представлена в голове сайта. Чтобы тута попасть,- в админке нужно пройти Внешний видРедактор и выбрать для редактирования «Заголовок» header.php. В ней у меня тоже была wp_list_categories, синтаксис которой заметно отличался, но прослеживалась похожая логика кода. Здесь тоже параметру orderby присваиваем значение slug и получаем такой код:

<?php wp_list_categories(‘depth=3&exclude=1&hide_empty=0& orderby=slug&show_count=0&use_desc_for_title=1&title_li=’); ?>

В итоге вы видите, что получилось, на этом сайте. Рубрики вверху сортированы в логической последовательности, от простого к сложному, а «блог» в конце. Кстати, видили в коде правило exclude=1? Это команда не показывать первую рубрику. Рубрика «Популярное» у меня специально для отображения слайд-шоу на сайте, описанного в статье «Как установить популярные записи в wordpress на главной странице сайта?«. Но никто ее не видит.

Сортировка страниц в шапке сайта

В ходе поиска сортировки рубрик пришлось узнать о сортировке страниц в шапке сайта. Такая возможность тоже существует и отвечает за нее функция wp_list_pages. Но копаться в этом глубоко не имеет смысла, так как, в отличии от рубрик, страницы можно легко сортировать, назначая им порядковый номер в атрибутах из админки сайта.

Понравилась статья? Поделись с друзьями:

Подпишись на обновления блога, и получай свежую информацию
на свой e-mail: 

Вы можете оставить комментарий, или ссылку на Ваш сайт.

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

Вы должны быть авторизованы, чтобы разместить комментарий.