Как вывести wp_list_categories в div вместо li?

31 июл. 2015 г., 00:42:44
Просмотры: 14K
Голосов: 3

Кто-нибудь знает, как вывести функцию 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);
0
Все ответы на вопрос 2
0

Вы можете указать аргумент 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 );
}
31 июл. 2015 г. 03:48:39
0

Пожалуйста, добавьте два новых аргумента в ваш массив $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. Если эта информация была полезной, пожалуйста, оставьте комментарий и поддержите :)

31 июл. 2015 г. 15:45:33