小金井にあるWEB制作会社の備忘録

MEMORANDUM

WordPress(ワードプレス)で投稿一覧の内容をショートコード化する

WordPress(ワードプレス)でホームページ制作をする際に、トップページは複雑な構成になることが多いため、専用ファイル(home.php)で作成することが多いのですが、編集を自由にしたいとのご要望から個別ページで作成する場合もあります。
その際に投稿一覧(新着情報)を自由な位置に配置できるように投稿一覧をショートコード化した方法をメモ。

function.php(PHP)

function news_post_list() {

	$html = '<ul class="newslist__list">';
	
	$postargs = array(
		'post_type' => 'post',
		'posts_per_page' => 5, //表示件数指定
	);
	$newspost_query = new WP_Query($postargs);
		
	if ($newspost_query->have_posts()) : while($newspost_query->have_posts()) : $newspost_query->the_post();

		$html .= '<li><a href="'.get_permalink().'">';
		$html .= '<span class="news__list__date">'.get_the_time('Y/m/j').'</span>';
		
		//カテゴリーを取得
		$categories = get_the_category();
		if($categories){
			foreach($categories as $category){
				$html .= '<span class="newslist__list__cat">'.$category->name.'</span>';
			}
		}
		
		$html .= '<span class="news__list__heading">'.get_the_title().'</span>';
		$html .= '</a></li>';
	endwhile; endif; wp_reset_postdata();

	$html.='</ul>';
	return $html;
}
add_shortcode('my_news_post_list', 'news_post_list');

[my_news_post_list]を個別ページのショートコードブロックの中に記載して完了。
一応、デフォルトでショートコードが用意されているようなのですが、反映に1時間近くかかるようなので、そちらは実用性がないかもしれません。

同一カテゴリーの記事