web-dev-qa-db-ja.com

Liではなくdivにwp_list_categoriesを表示する方法は?

誰もが wp_list_categories()divではなくliに表示する方法を知っていますか?

私は基本的に、メインカテゴリとその子をブートストラップコラムで囲みたいと思います。

$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

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

$args配列に2つの新しい引数を追加してください。

1)値なしのスタイル。 more のマークアップセクションを参照してください。 2)0(偽)でエコーします。

結果を呼び出して$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 ) )を使用できます。

P.Sもしこのことが助けになるなら、私にコメントとサポートを残してください:)