制作の現場から  
  ワードプレスで記事の属するカテゴリーから特定のカテゴリーを除外したリンク付き一覧を作成する方法
2019
20
Jan

ワードプレスで記事の属するカテゴリーから特定のカテゴリーを除外したリンク付き一覧を作成する方法

表題の通りです。

ワードプレスで記事の属するカテゴリーから特定のカテゴリーを除外したリンク付き一覧を作成する方法

今回の場合は表示する法のカテゴリーが少なかったのでINを使いました。
除外するカテゴリーの方が少なければNOT IN を使います。

副問い合わせをする場合はNOT INには注意が必要です。代わりにNOT EXISTの使用を検討します。

sql


$sql = "
	SELECT DISTINCT terms.name,terms.term_id
	FROM $wpdb->posts as posts
	JOIN $wpdb->term_relationships as relationships ON posts.ID = relationships.object_ID
	JOIN $wpdb->term_taxonomy as tax ON relationships.term_taxonomy_id = tax.term_taxonomy_id
	JOIN $wpdb->terms as terms ON tax.term_id = terms.term_id
	WHERE posts.ID = %d AND tax.taxonomy = 'category' AND terms.term_id IN(5, 6, 7, 8)
	ORDER BY terms.term_id ASC
";
$categories = $wpdb->get_results($wpdb->prepare($sql, $post->ID));

カテゴリーリンク一覧


foreach ( $categories as $cat ){
	echo '<a href="'.get_category_link( $cat->term_id ).'">'.$cat->name.'</a>' ;
}

もっと簡単に、関数がありました。


$args = array(
	'exclude' => '', //ここに除外したいカテゴリーのIDをカンマ区切りで入れる。
);
wp_list_categories( $args );

 

top