普段カスタム投稿タイプばっかり使ってて通常の投稿タイプpostで記事一覧ページの取得方法がわからなかったので備忘録。
調べてみるとカスタム投稿タイプに比べて通常の投稿タイプの記事一覧は取得方法がややこいみたいですね。
自作テーマでトップページとは別に投稿一覧ページを出したい
手順1.functions.phpにコード追記
function post_has_archive( $args, $post_type ) {
if ( 'post' == $post_type ) {
$args['rewrite'] = true;
$args['has_archive'] = 'blog'; //任意のスラッグ名
}
return $args;
}
add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 );
この設定でhttps://ドメイン名/blog/が記事一覧の専用URLとなります。
手順2.設定からパーマリンク変更
記事のパーマリンクを基本以外にする。

カスタム構造で基本以外のhttps://ドメイン名/%category%/%postname%/などにする
オプションに「.」をいれる

こうすると
https://ドメイン名/news/
https://ドメイン名/category/news/
のように重複してできてしまうカテゴリを
https://ドメイン名/news/ カテゴリがない方に統一できる。
手順3.archive.php、category.phpなどのファイルを作成。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
//ここにループ処理
<?php endwhile; ?>
<?php endif; ?>
archive.php、category.phpもコードは同じ。
これで手順1で設定したスラッグのhttps://ドメイン名/blog/でアクセスしてみると、ブログ記事一覧が表示されます。
参考にさせていただいた記事はこちら。
WordPressの記事投稿一覧ページURLをカスタマイズする