ワードプレスに投稿された全記事を一覧で表示するやり方です。
固定ページを作成
全記事一覧を表示させる固定ページを作成しましょう。 category.phpやpage.phpをコピーし、『スラッグ名(以下、○○と表記)-page.php』とリネームしてください。 このようにすれば、該当するページを表示する際に、page.phpではなく、○○-page.phpを読み込んでくれます。
固定ページにテンプレートを指定するやり方でもOK [blogcard url=“/tutorial/post-658/”]
○○-page.phpの編集
作成した○○-page.phpを編集します。 記事一覧を表示させます。
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 10,
);
$my_query = new WP_Query($args);
if( $my_query -> have_posts() ) :
while($my_query -> have_posts()) : $my_query -> the_post();
?>
<!--ループの内容-->
<?php endwhile;else: ?>
<p>表示する記事がありません</p>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
上記だと、投稿された記事を10件表示させるだけです。 固定ページはひとつのページとしての役割があるため、このままではページネーションを機能させることはできません。
固定ページでページネーションを機能させる
先ほどの例にget_query_var(‘paged’)を追加してページ番号を取得しましょう。 これで、ページネーションを機能させられます。
<?php
$paged = get_query_var('paged') ? get_query_var('paged') : 1 ;
$args = array(
'post_type' => 'post',
'posts_per_page' => 10,
'paged' => $paged
);
$my_query = new WP_Query($args);
if( $my_query -> have_posts() ) :
while($my_query -> have_posts()) : $my_query -> the_post();
?>
<!--ループの内容-->
<?php endwhile;else: ?>
<p>表示する記事がありません</p>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
WP-PageNaviを使用している場合 以下のように書き換えてください。
<?php
if(function_exists('wp_pagenavi')) {
wp_pagenavi(array('query' => $my_query));
}
?>
おまけ
投稿以外にカスタム投稿がある場合はpost_typeをこのように書き換えてください。
‘post_type’ => array(‘post’,‘カスタム投稿のスラッグ名1’,‘カスタム投稿のスラッグ名2’),
参考にどうぞ!
カスタム投稿の追加方法 [blogcard url=“/tutorial/post-540/”] カスタム投稿タイプの新着記事を表示 [blogcard url=“/tutorial/post-552/”]
