Cómo mostrar wp_list_categories en div en lugar de li
¿Alguien sabe cómo mostrar la función wp_list_categories()
en un div
en lugar del li
?
Básicamente quiero envolver las categorías principales y sus hijos en una columna de Bootstrap.
$args = array(
'taxonomy' => 'product_category', // Taxonomía a utilizar
'hide_empty' => 0, // Mostrar categorías vacías
'orderby' => 'name', // Ordenar por nombre
'order' => 'ASC', // Orden ascendente
'show_count' => 0, // No mostrar conteo de entradas
'use_desc_for_title' => 0, // No usar descripción como título
'title_li' => 0 // No mostrar título en elemento li
);
wp_list_categories($args);

Puedes especificar el argumento style
como algo diferente al predeterminado (que es list
) y no envolverá la salida en un <li>
. Luego puedes envolverlo en un <div>
manualmente.
Combínalo con el argumento echo
si necesitas verificar que la lista no esté vacía. Ejemplo:
$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 );
}

Por favor añade dos nuevos argumentos a tu array $args
.
1) Style con valor none. Revisa la sección de marcado para más información. 2) echo con 0 (Falso).
Ahora llama y almacena el resultado en la variable $categories
e imprímelo usando printf()
.
Código final:
$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 );
}
Adicionalmente, puedes usar if ( !preg_match( '/No\scategories/i', $cats ) )
si el texto mostrado dice "No categories" (Sin categorías).
P.D. Si esto te ha sido útil por favor déjame un comentario y apóyame :)
