投稿タイプ「投稿(post)」にアーカイブページを設定する方法

WordPressの投稿の一覧ページを作成するにはアーカイブを有効化する必要があります。

CPTUIなどのプラグインを使うとカスタム投稿タイプを作成し、アーカイブページの有効化なども設定画面から変更できるのですが、WordPressの標準で用意されている投稿(post)の設定を変更することは出来ませんので、今回の方法で有効化する必要があります。

投稿タイプ「投稿(post)」に対してアーカイブページを設定するにはカスタム投稿タイプと同様に「register_post_type_args」というフィルタフックを使って有効化することができます。

/* 投稿アーカイブを有効にしてスラッグを指定する */
function post_has_archive( $args, $post_type ) {
  if ($post_type === 'post') {
    $slug = 'news';  // アーカイブを表示させたいスラッグ名を指定
    $args['labels'] = array(
      'name' => 'ニュース' // 管理画面のメニュー名を指定
    );
    $args['has_archive'] = $slug;
    $args['rewrite'] = array(
      'slug' => $slug,
      'with_front' => false,
    );
  }
  return $args;
}
add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 );

3行目で投稿タイプが「投稿(post)」だったらという判定を行っています。
4行目でアーカイブを表示するためのスラッグ名を指定します。
5行目〜7行目では管理画面に表示するためのラベルを指定します。指定をすると管理画面の「投稿」というメニューが変わります。
8行目でアーカイブの有効化をしています。
9行目〜12行目でリライトの有効化をしています。
16行目フィルターフック「register_post_type_args」を使って設定しています。