Cómo mostrar wp_list_categories en div en lugar de li

31 jul 2015, 00:42:44
Vistas: 14K
Votos: 3

¿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);
0
Todas las respuestas a la pregunta 2
0

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 );
}
31 jul 2015 03:48:39
0

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 :)

31 jul 2015 15:45:33