Web production note

 【更新日 :

【WordPress】カテゴリー出力のあれこれ

Category:
WordPress

よく使うカテゴリーの出力方法をまとめました。

取得方法

<?php
	$cat = get_the_category(); //カテゴリー情報取得
	$cat_id = $cat[0]->cat_ID; //カテゴリーID取得
	$cat_name = $cat[0]->name; //カテゴリー名取得
	$cat_slug = $cat[0]->category_nicename; //カテゴリースラッグ取得
	$link = get_category_link($cat_id); //カテゴリーリンク取得
?>

表示ページのカテゴリーを出す

<p>カテゴリー: <a href="<?php echo $link ?>"><?php echo $cat_name ?></a></p>

特定のカテゴリーの記事一覧を出す

特定のカテゴリーの記事一覧を出す場合は、スラッグ名を渡してあげると絞り込みが可能です。
下記コードでは、タイトル、記事リンク、日付け、カテゴリー、タグが出力されます。

<?php
	$args = array(
		'category_name' => $cat_slug, //カテゴリーのスラッグ名
		'post_type' => 'post',
		'posts_per_page' => -1,
		'order' => 'DESC',
		'orderby' => 'date'
	);
	$wp_query = new WP_Query($args);
	if( have_posts() ) : while( have_posts() ) : the_post();
?>
	<div class="post">
		<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
		<p>日付け:<?php the_time( 'Y.m.d' ) ?></p>
		<p>カテゴリー: <a href="<?php echo $link ?>"><?php echo $cat_name ?></a></p>
		<p><?php the_tags('タグ: ',' , '); ?></p>
	</div>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

全てのカテゴリーを取得し出力する

<ul>
	<?php
		$cat_all = get_terms( "category", "fields=all&get=all" );
		foreach($cat_all as $value):
	?>
	<li><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?></a></li>
	<?php endforeach; ?>
</ul>

リストで出力するだけの場合は下記のコードで出力できます。

<?php wp_list_categories() ?>

参考リンク