【WordPress】トップページにカテゴリ別の全記事リストを表示する方法

2019年4月11日WordPress

WordPressのトップページ(フロントページ)にカテゴリ別の全記事一覧を表示する方法になります

一覧を表示するウィジェットに関数を実行するショートコードを記述するタイプです

カテゴリ別の全記事リストを表示するサンプルコード

functions.php

function in_top_page_view()
	{
	if (is_front_page() && !is_paged())
		{
		$categories = get_categories();
		foreach($categories as $category)
			{
			echo '<p>'.$category->cat_name.'</p><ul class="entry_list">';
			$arg = array(
				'posts_per_page' => 30,//カテゴリ別記事数
				'orderby' => 'date',//日付ソート
				'order' => 'DESC',//新記事順に
				'category' => $category->cat_ID
			);
			$posts = get_posts($arg);
			foreach($posts as $post)
				{
				echo '<li><a href="'.$post->post_name.'">'.$post->post_title.'</a></li>';
				}

			echo '</ul>';
			}
		}
	}

add_shortcode('in_top_page_view', 'in_top_page_view');

//ウィジェットでショートコードを有効化
add_filter('widget_text', 'do_shortcode');

ウィジェット

[widget_text]

CSS

.entry_list li{
	font-size:1em;
	font-weight: bold;
	list-style:none;
	padding:0.5em;
	margin: 0;
}

簡単な説明

is_front_page()フロントページ判別
!is_paged()2ページ目以降は読み込まない
get_categories()カテゴリ一覧の取得
foreach($categories as $category)カテゴリのループ処理
get_posts()記事一覧データ取得
foreach($posts as $post)記事情報ループ処理

2019年4月11日WordPressWordPressカスタマイズ

Posted by ヨウスケ