Category.phpとして割り当てられている製品ページがあります。今、私はカテゴリページのサブメニューとしてサブカテゴリを表示したいです。しかし、たくさん検索した後でも、すべてのサブカテゴリを表示できませんでした。私は1つのコードを見つけました:
<?php
if (is_category()) {
$this_category = get_category($cat);
}
?>
<?php
if($this_category->category_parent)
$this_category = wp_list_categories('orderby=id
&title_li=&use_desc_for_title=1&child_of='.$this_category->category_parent.
"&echo=0"); else
$this_category = wp_list_categories('orderby=id&depth=1
&title_li=&use_desc_for_title=1&child_of='.$this_category->cat_ID.
"&echo=0");
if ($this_category) { ?>
<ul>
<?php echo $this_category; ?>
</ul>
<?php } ?>
しかし、これがしているのは、0の投稿があるサブカテゴリを表示しないことです。また、カテゴリにサブカテゴリがないカテゴリはありません。すべてのリストの前に箇条書きがあります。だから助けてください。
get_categories & - wp_list_categories を特定のパラメータと共に使用することができます(直接使用する場合はcategory.php template)。
// List sub cats
$params = array(
'parent' => get_queried_object_id(), //id of current category displayed
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => false // do not hide sub cats without posts
);
if ( count( get_categories( $params ) ) ) {
wp_list_categories( $params );
}
引数の完全なリストは見つけることができます ここ
あなた自身のWalkerでWPの Walker_Category classを拡張して出力をカスタマイズすることもできます。