Выводим список рубрик с чекбоксами в WordPress

Когда на своем блоге вы выстраиваете иерархическую структуру рубрик, то они отобразятся на странице редактирования записи в виде списка с чекбоксами, отражая родительские/дочерние элементы. Это позволит вам выбрать рубрику, которую нужно назначить записи.

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

checkbox-list-269x590[1]

Получаем список рубрик

В WordPress уже есть функция, которая позволяет вам получить список рубрик и вывести их на странице, эта функция — wp_list_categories(). Она возвращает список элементов рубрик со ссылками на страницу рубрики.

<ul>
<?php wp_list_categories('orderby=name'); ?>
</ul>

На текущий момент она возвращает только список элементов, но существует целый ряд параметров, которые можно передать функции и изменить ее поведение. Самым важным параметром в этой статье является параметр walker.

Параметр walker позволяет вам определить класс Walker, который будет обрабатывать вывод рубрик. Класс Walker обработает результаты запроса и позволит их вывести различными способами.

Ниже представлен перечень Walkers, доступных для использования в WordPress:

  • Walker_Nav_Menu_Edit
  • Walker_Nav_Menu_Checklist
  • Walker_Category_Checklist
  • Walker_Category
  • Walker_CategoryDropdown
  • Walker_Comment
  • Walker_Nav_Menu
  • Walker_Page
  • Walker_PageDropdown

Можно использовать любой из них для передачи параметра для настройки различных способов вывода, или же можно создать собственный класс Walker самостоятельно, расширив основной класс Walker в WordPress.

В нашей статье мы будем использовать класс Walker Walker_Category_Checklist, передавая его в качестве параметра и получая вывод рубрик в виде списка с чекбоксами и отображения родительских/дочерних элементов.

<?php
$args = array(
    'taxonomy' => 'custom-taxonomy',
    'walker'   => new Walker_Category_Checklist
);
?>

<ul class="categorychecklist">
    <?php wp_list_categories( $args ); ?>
</ul>

По всем вопросам и отзывам просьба писать в комментарии ниже.

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

VN:F [1.9.22_1171]
Rating: 4.3/5 (3 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top