WordPressの記事一覧をショートコードで出力するにあたって、パラメータを使って特定のカテゴリーの記事一覧を出力することが可能です。

これを実装することでfunctions.phpでは1つのショートコードを設定するだけで、特定のカテゴリーの記事一覧をいろんなページでショートコードにパラメータを指定することで表示させることができます!

出力したい記事一覧のHTMLソース

 まず、以下のHTMLソースをページで出力したいとします。

<ul>
	<li><a href="記事ページURL">記事タイトル</a></li>
	<li><a href="記事ページURL">記事タイトル</a></li>
	<li><a href="記事ページURL">記事タイトル</a></li>
	<li><a href="記事ページURL">記事タイトル</a></li>
	<li><a href="記事ページURL">記事タイトル</a></li>
</ul>

仕様としましては、5件の記事を一覧として表示させる…といったものになります。

記事一覧を出力するショートコードをfunctions.phpに記述

 それでは、functions.phpに上記のHTMLソースを出力してくれるショートコードを記述します。

今回はパラメータとしてカテゴリーIDを記入することで特定のカテゴリーの記事一覧が出力・表示されるよう、以下のコードをfunctions.phpに記述します。

function itiran($atts) {
	extract(shortcode_atts(array(
  		'cat' => null
  	), $atts ));  
	$args = array(
		'post_type' => 'post',
		'posts_per_page' => 5,
		'cat' => $cat
	);
	$html = '<ul>';
	$wp_query = new WP_Query($args);
	if ($wp_query->have_posts()) {
		while ($wp_query->have_posts()) {
			$wp_query->the_post();
			$link = get_the_permalink();
			$title = get_the_title();
			$html.='<li>';
			$html.='<a href="' . $link . '">' . $title . '</a>';
			$html.='</li>';
		}
	}
	$html.='</ul>';
	wp_reset_postdata();
	return $html;
}
add_shortcode('itiran','itiran');

以上のように記述することで、例えばカテゴリーIDが10に属している記事一覧を出力したい場合は、
[itiran id=”10″]
と記述することでカテゴリーID=10の記事一覧を出力することが可能になります!

パラメータの設定方法

 上記の見本コードの簡単な解説としましては、3行目にある

'cat' => null

こちらでパラメータの1つ目の設定をしています。

続いて、8行目の

'cat' => $cat

こちらの$catが、3行目の‘cat’と紐付いている形となります。

そのため、ここは同じ語句を設定することで紐付けができるようになります。

【発展】
特定のカテゴリーの記事を件数を指定して出力させる

 それでは発展型として、特定のカテゴリーの記事を件数を指定して出力させる方法についても簡単にご紹介したいと思います。

その場合は、以下のphpコードをfunctions.phpに記述することで実装可能になります。

function itiran($atts) {
	extract(shortcode_atts(array(
  		'cat' => null,
		'num' => null
  	), $atts ));  
	$args = array(
		'post_type' => 'post',
		'posts_per_page' => $num,
		'cat' => $cat
	);
	$html = '<ul>';
	$wp_query = new WP_Query($args);
	if ($wp_query->have_posts()) {
		while ($wp_query->have_posts()) {
			$wp_query->the_post();
			$link = get_the_permalink();
			$title = get_the_title();
			$html.='<li>';
			$html.='<a href="' . $link . '">' . $title . '</a>';
			$html.='</li>';
		}
	}
	$html.='</ul>';
	wp_reset_postdata();
	return $html;
}
add_shortcode('itiran','itiran');

上記のコードを設定することで、例えばカテゴリーIDが5に属する記事を10件出力・表示させたい場合は、
[itiran cat=”5″ num=”10″]
と記述することで表示可能になります!

まとめ

 ショートコードにおいて、パラメータを設定することで出力時に色々設定させることができるようになります。

今回紹介したのは一例ですので、ご自身がお好みな設定をして、ショートコードをより使いやすいものにしていただけたら…と思います(^-^)

スポンサーリンク