Custom Post Type UIで指定したタクソノミーの親、子、孫要素を出力する方法【wordpress】を紹介します。コピペOKです。
目次
Custom Post Type UIで指定したタクソノミーの親、子、孫要素を出力する場面
Custom Post Type UIで、例えば商品カテゴリを親子関係で作成した場合です。
例えばバッグ>メンズバッグ>ショルダーバッグなどの親子、孫関係です。
Custom Post Type UIで指定したタクソノミーの親、子、孫要素を出力する方法【コピペOK】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<?php $taxonomyName = "goods"; $args = array( 'parent' => 0, 'hide_empty' => 0 ); $terms = get_terms($taxonomyName,$args); foreach ($terms as $term) { echo '<h3 id="'.$term->slug.'">'.$term->name.'</h3>'; ?> <?php echo '<div class="product-detail"><ul>'; $parentId = $term->term_id; $childargs = array( 'parent' => $parentId, 'hide_empty' => 0 ); $childterms = get_terms($taxonomyName,$childargs); foreach ($childterms as $childterm) { $targetSlug = $childterm->slug; //子要素出力 echo "<li><a href=".get_term_link($childterm->term_id).">$childterm->name</a></li>"; wp_reset_postdata(); $childId = $childterm->term_id; $grandargs = array( 'parent' => $childId, 'hide_empty' => 0 ); //孫要素出力 $grandterms = get_terms($taxonomyName,$grandargs); foreach ($grandterms as $grandterm) { $targetSlug = $grandterm->slug; echo "<li><a href=".get_term_link($grandterm->term_id).">$grandterm->name</a></li>"; wp_reset_postdata(); } } echo '</ul></div>'; } ?> |
Custom Post Type UIで指定したタクソノミーの親、子、孫要素を出力する方法解説
1 |
$taxonomyName = "goods"; |
タクソノミー 名指定
1 2 3 4 |
$args = array( 'parent' => 0, 'hide_empty' => 0 ); |
「’parent’ => 0,」で、親要素が0、つまり、上に親カテゴリがないときという意味です。
「hide_empty」で中身がなくとも出力します。
1 2 3 |
foreach ($terms as $term) { echo '<h3 id="'.$term->slug.'">'.$term->name.'</h3>'; } |
親要素をリンク付きで出力しています。
1 2 3 4 5 6 |
$parentId = $term->term_id; $childargs = array( 'parent' => $parentId, 'hide_empty' => 0 ); $childterms = get_terms($taxonomyName,$childargs); |
子要素を定義しています。
「$parentId」を親要素として指定して、
「$childargs」「$childterms」の定義で、親要素の子供を指定をしています。
1 2 3 4 5 6 7 8 9 |
//子要素出力 echo "<li><a href=".get_term_link($childterm->term_id).">$childterm->name</a></li>"; wp_reset_postdata(); $childId = $childterm->term_id; $grandargs = array( 'parent' => $childId, 'hide_empty' => 0 ); |
ここで子要素を出力しています。
1 2 3 4 5 6 7 |
//孫要素出力 $grandterms = get_terms($taxonomyName,$grandargs); foreach ($grandterms as $grandterm) { $targetSlug = $grandterm->slug; echo "<li><a href=".get_term_link($grandterm->term_id).">$grandterm->name</a></li>"; wp_reset_postdata(); } |
子要素の中で孫要素を出力しています。