WordPress固定ページで投稿一覧を表示

WordPress固定ページで投稿の一覧を取得したい場合

WordPressの固定ページのスラッグを使い、
投稿の一覧を、カテゴリーで分けて表示することが可能です。
固定ページのテンプレートを作成して、下記の記述を参考に設定してみてください。

PHPの記述内容を記載します。

<?php //ループの設定開始
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 $the_query = new WP_Query( array(
     'post_status' => 'publish', //公開された投稿もしくは固定ページ
     'paged' => $paged, //現在のページ番号の指定
     'posts_per_page' => 5, // 表示件数
     'cat' => 3, //カテゴリーのID
     'orderby' => 'date', //並び替えの条件
     'order' => 'DESC' //昇順(ASC)、降順(DESC)の指定
 ));  
 if ($the_query->have_posts()) :?>
<?php
    while ($the_query->have_posts()) : $the_query->the_post();?>
    <!--ループで表示させたい内容を記載します。-->
    <div>
        <a href="<?php the_permalink(); ?>"><!--記事へのリンク出力-->
		    <div>
			    <p><?php the_time('Y.m.d'); ?></p><!--日付出力-->
				<p><?php the_title(); ?></p><!--タイトルの出力-->
			</div>
        </a>
	</div>
    <!--表示させたい内容ここまで-->

<?php endwhile;?>
<?php endif; ?>

<!-- ページ送りの設定 -->
<div>
<?php 
if ($the_query->max_num_pages > 1) {
    echo paginate_links(array(
        'base' => get_pagenum_link(1) . '%_%', //ページ番号付きのリンクを生成するために使われるベースの URLの指定
        'format' => 'page/%#%/', //ページネーションの構造を指定
        'total' => $the_query->max_num_pages //全体のページ数
        'current' => max(1, $paged), //現在のページ番号
        'mid_size' => 1, //現在のページの両側にいくつの数字を表示するか(現在のページは含まない)
    ));
}
wp_reset_postdata();?>
</div>

まとめ

これで特定のカテゴリーの投稿内容を一覧で取得する事が可能です。 もちろんページ送りの実装も可能です。

Author: 小清水 和真

WebディレクションからWebザイン・コーディングを主に行っております。 2021年株式会社を設立。講師もしております。

コメントを残す