【ワードプレス】カテゴリごとに最新記事を表示する方法
パルどう@法人9期目 更新日:
トップページにカテゴリごと記事を表示したい!
な人に向けて完璧な答えを提供する記事。
1、目標
<カテゴリ名1>
・記事1
・記事2
・記事3
<カテゴリ名2>
・記事1
・記事2
・記事3
というのを表示する。
具体的には当サイトのトップページを見てください。
2、実現するサンプルコード
<?php
$category_id = array(2,12,13,14);
$category_name = array('WEB制作','料理・食事','ファション','生活全般');
$catcount = count($category_id);
for($i=0;$i<$catcount;$i++){
?>
<h2><?php echo $category_name[$i] ?></h2>
<ul>
<?php
$args = array(
'posts_per_page' => 5,//記事を表示する件数
'cat' => $category_id[$i],
);
$the_query = new WP_Query($args);
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
$samune = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'Midiamu');
$category_url = get_category_link($category_id[$i]);
?>
<!--ここはループ部分なので自分のサイト用に組み立てを-->
<li><img src="<?php echo $samune[0] ?>" alt="" width="" height=""/><br>
<a href="<?php the_permalink() ?>"><?php echo $post->post_title ?></a><br>
投稿日:<?php the_time('Y/m/d'); ?></li>
<?php
endwhile;
endif;
wp_reset_postdata();
?>
</ul>
<?php
echo '<div><a href="'.$category_url.'">'.$category_name[$i].'の記事一覧</a></div>';
}
?>
3、補足
カテゴリIDとカテゴリ名の配列は自力で作成すること。
自動で取得もできますが、
やはりカテゴリを表示する順番は自分で決めた方がいいです。
そのため、IDと名前の配列を作成してください。
あと、カテゴリ数が多いと負荷が増えるのでキャッシュを推奨します。
このままテキストに保存してもいいし、別にfile_get_contentsで取得して保存してもいい。
自分は記事を追加次第に手動でキャッシュ更新しています。