techronicle テクロニクル

Webサイト作成に関する情報提供サイトです。WordPress,HTML+CSSなど。

WordPressカスタム投稿で親ターム→子ターム→投稿一覧という流れ

2015/06/26 WordPress

WordPressのカスタム投稿で親ターム→子ターム→投稿一覧という流れ。

url/?taxonomy=親ターム、で、開いたtaxonomy.phpの出力に子タームのリンク付リストを表示し、そこから投稿一覧へ持っていく展開です。

ちょっと力業的なのかもしれませんが、とにかくできたので、シェアします。

タームIDの取得


<?php
$term_title = single_term_title('',false);
$term = get_term_by('slug', $term_title, $taxonomy );
$term_id = $term->term_id; //idを取得
; ?>

子タームがあるかないか


<?php $catego = wp_list_categories('echo=0&title_li=&hide_empty=0&taxonomy=タクソノミー名&child_of='.$term_id.'&show_option_none='); ?>

子タームがあれば、$categoに値が入り、なければ空です。

echo=0を加えることにより、表示ではなく出力モードに。

show_option_none=を加えることで、「カテゴリーなし」という出力をなくして、空出力を得られます。

空ならば投稿一覧表示、値があれば子タームリスト表示


<?php if (empty($catego)): ?>

<ul>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php endif; ?>
</ul>

<?php else: ?>
<?php wp_list_categories('title_li=&hide_empty=0&show_count=1&taxonomy=shop_area&child_of='.$term_id.'&show_option_none='); ?>
<?php endif; ?>

この条件分岐により、taxonomy.phpを子タームリスト表示と投稿一覧表示の両方に使えます。