Постраничная навигация по таксономии - решение, DIY

WordPress

Постраничная навигация по таксономии – это тот момент, на котором останавливается разработка небольших проектов, так как привычные методы работы с категориями перестают работать.

Предположим, что существует некий тип записей, например “service”, для которого создана таксономия “services”. Необходимо сделать так, чтобы данные типы публикаций выводились аналогично стандартным записям WordPress и у них была постраничная навигация по таксономии.

Для реализации данной задачи необходимо получить id текущего терма(term). Терм – это аналог конкретного раздела в категориях, но для произвольной таксономии, а таксономия – это аналог категории WordPress.

После того, как id терма получен, можно выяснить все данные, относящиеся к данному терму, что и следует сделать. Следом надо выяснить номер текущей страницы и если он не задан, указать, что просматривается первая страница.

После того, как вся информация получена делается запрос на получение всех записей для текущего терма в указанной таксономии с учетом отображаемой страницы, с указанием числа записей, выводимых на одной странице.

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

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

Листинг кода – постраничная навигация по таксономии

Вышеописанный код можно написать в файле taxonomy-<taxonomy_name>.php, где taxonomy_name – это имя таксономии. То есть для данного случая файл должен называться taxonomy-services.php.

Добавить комментарий

Войти с помощью: 

Вступайте в нашу группу в VK

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

ИП Исаенко А.В.

ОГРНИП 317774600344403

ИНН 773770600180