【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) | 記事情報ループ処理 |
ディスカッション
コメント一覧
まだ、コメントがありません