表示中のカテゴリーに属する記事IDを配列で取得できる『get_objects_in_term』はステータスが公開以外の記事も取得してしまうよ
こんにちは!みぞれ(@xxmiz0rexx)です。
すごいニッチかもしれないんだけど、WordPressでカテゴリ一覧を表示している時に、さらに記事を絞り込むためにタグ一覧を表示することってありますよね?
そんな時はWordPress Codexにも載っている以下の方法を参考にする人が多いと思うんですが、実はこれだと下書きなどに設定しているタグも出力されてしまいます。
PHP
<?php if ( is_category() ) { // 現在のカテゴリーのIDを取得 $cat_id = get_query_var( 'cat' ); // 表示中のカテゴリーに属する投稿のIDを配列で取得 $current_posts = get_objects_in_term( $cat_id, 'category' ); // 表示中のカテゴリーに属する投稿に付けられたタグの情報をまとめて取得 $current_tags = wp_get_object_terms( $current_posts, 'post_tag' ); if ( $current_tags ) { echo 'このカテゴリーの投稿に付いているタグの一覧:<ul>' . "\n"; foreach ( $current_tags as $tag ) echo '<li>' . $tag->name . '</li>' . "\n"; echo '</ul>'; } } ?>
それだとちょっと困ってしまったので対処法を考えました。
(さらに…)