web-dev-qa-db-fra.com

Comment afficher wp_list_categories sur div au lieu de li?

Est-ce que quelqu'un sait comment afficher la wp_list_categories() sur un div au lieu de li?

Je veux fondamentalement envelopper les catégories principales et ses enfants dans une colonne de bootstrap.

$args = array(
    'taxonomy'           => 'product_category',
    'hide_empty'         => 0,
    'orderby'            => 'name',
    'order'              => 'ASC',
    'show_count'         => 0,
    'use_desc_for_title' => 0,
    'title_li'           => 0
);
wp_list_categories($args);
2
Hugo

Vous pouvez spécifier l'argument style comme autre chose que la valeur par défaut (qui est list) et il ne recouvrira pas la sortie dans un <li>. Vous pouvez ensuite l'envelopper dans un <div> vous-même.

Combinez-le avec l'argument echo si vous devez vérifier que la liste n'est pas vide. Exemple:

$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 );
}
3
John Blackbourn

Veuillez ajouter deux nouveaux arguments dans votre tableau $args.

1) Style sans valeur. Voir la section balisage pour plus . 2) écho avec 0 (Faux).

Maintenant, appelez et stockez le résultat dans la variable $categories et imprimez-le via printf().

Code final comme:

$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 );
}

En plus, vous pouvez utiliser if ( !preg_match( '/No\scategories/i', $cats ) ) Si le texte affiché se lit "Aucune catégorie".

P.S. Si cela vous aide, laissez-moi un commentaire et un soutien :)

2