[WordPress] ワードプレスのカテゴリ階層を取得したい

スポンサーリンク

Question

このコードが階層構造のカテゴリを出力しない理由がわからないです。

<ul>
<?php
$args = array(
‘show_option_all’ => ”,
‘container’ => false,
‘orderby’ => ‘name’,
‘order’ => ‘ASC’,
‘hide_empty’ => 0,
‘use_desc_for_title’ => 0,
‘child_of’ => 0,
‘hierarchical’ => 1,
‘number’ => null,
‘echo’ => 1,
‘depth’ => -1,
‘taxonomy’ => ‘category’

);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
echo ‘<li><a href=”‘ . get_category_link( $category->term_id ) . ‘”>’ . $category->name . ‘(‘ . $category->count . ‘)</a></li>';
}
?>
</ul>

代わりにリストの項目をすべて出力しています。

<ul>
<li><a href=”http://test.dev/category/media/”>Media(1)</a></li>
<li><a href=”http://test.dev/category/media/movies/”>Movies(1)</a></li>
<li><a href=”http://test.dev/category/media/tv-shows/”>TV Shows(1)</a></li>
<li><a href=”http://test.dev/category/uncategorised/”>Uncategorised(1)</a></li>
</ul>

このような場合もあります。

<ul>
<li><a href=”http://test.dev/category/media/”>Media(1)</a>
<ul>
<li><a href=”http://test.dev/category/media/movies/”>Movies(1)</a></li>
<li><a href=”http://test.dev/category/media/tv-shows/”>TV Shows(1)</a></li>
</ul>
</li>
<li><a href=”http://wordpress.dev/category/uncategorised/”>Uncategorised(1)</a></li>
</ul>

見ることができる ‘階層’ を 1 に設定しますが、期待どおりに動作しません。

私は、リストのマークアップをカスタマイズすることができるようにする必要がありますので、標準的な wp_list_categories メソッド ( http://codex.wordpress.org/Template_Tags/wp_list_categories) を使用できません。

ご提案ください。

答え

以下のコードを使用することができます:

<ul>
<?php
$args = array(
‘show_option_all’ => ”,
‘container’ => false,
‘orderby’ => ‘name’,
‘order’ => ‘ASC’,
‘hide_empty’ => 0,
‘use_desc_for_title’ => 0,
‘child_of’ => 0,
‘hierarchical’ => 1,
‘number’ => null,
‘echo’ => 1,
‘depth’ => -1,
‘taxonomy’ => ‘category’

);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
if($category->parent==0)
echo ‘<li><a href=”‘ . get_category_link( $category->term_id ) . ‘”>’ . $category->name . ‘(‘ . $category->count . ‘)</a></li>';
else
echo ‘<ul><a href=”‘ . get_category_link( $category->term_id ) . ‘”>’ . $category->name . ‘(‘ . $category->count . ‘)</a></li></ul>';
}
?>
</ul>

http://stackoverflow.com/questions/27220778/wordpress-categories-hierarchy

スポンサーリンク

Leave a Reply