Как вывести wp_list_categories в div вместо li?
Кто-нибудь знает, как вывести функцию wp_list_categories()
в div
вместо li
?
Мне нужно обернуть основные категории и их подкатегории в колонку Bootstrap.
$args = array(
'taxonomy' => 'product_category', // Таксономия
'hide_empty' => 0, // Показывать пустые категории
'orderby' => 'name', // Сортировка по имени
'order' => 'ASC', // Порядок сортировки
'show_count' => 0, // Показывать количество записей
'use_desc_for_title' => 0, // Использовать описание как title
'title_li' => 0 // Не выводить заголовок списка
);
wp_list_categories($args);

Вы можете указать аргумент style
отличным от значения по умолчанию (который list
), и тогда вывод не будет обёрнут в <li>
. В этом случае вы можете самостоятельно обернуть его в <div>
.
Сочетайте это с аргументом echo
, если вам нужно проверить, что список не пуст. Пример:
$args = array(
'taxonomy' => 'product_category',
'hide_empty' => 0,
'orderby' => 'name',
'order' => 'ASC',
'show_count' => 0,
'use_desc_for_title' => 0,
'title_li' => 0,
'style' => '',
'echo' => false,
);
$categories = wp_list_categories($args);
if ( $categories ) {
printf( '<div class="col">%s</div>', $categories );
}

Пожалуйста, добавьте два новых аргумента в ваш массив $args
.
1) Стиль со значением none. Смотрите раздел разметки для подробностей. 2) echo со значением 0 (False).
Теперь вызовите и сохраните результат в переменную $categories
и выведите его с помощью printf()
.
Итоговый код будет выглядеть так:
$args = array(
'taxonomy' => 'product_category',
'hide_empty' => 0,
'orderby' => 'name',
'order' => 'ASC',
'show_count' => 0,
'use_desc_for_title' => 0,
'title_li' => 0,
'style' => 'none',
'echo' => 0,
);
$categories = wp_list_categories($args);
if ( $categories ) {
printf( '<div>%s</div>', $categories );
}
Дополнительно, вы можете использовать if ( !preg_match( '/No\scategories/i', $cats ) )
если отображается текст "No categories".
P.S. Если эта информация была полезной, пожалуйста, оставьте комментарий и поддержите :)
