WordPressでテーマファイルを自作しているとたまにハマるのが、「デフォルトの『投稿』(post_type が post)のアーカイブページってどうやって作るんだっけ?」という問題。
カスタム投稿タイプなら、「Custom Post Type UI」などのプラグインを使ってカスタム投稿タイプを新規投稿する際にアーカイブ機能のオン/オフの設定があるため簡単ですが、デフォルトで用意されている「post」に関しては上記プラグインで設定変更できない(ことがある)うえ、アーカイブ機能がオフになっているので、戸惑うことがあります。
「投稿」のアーカイブを有効にする手順
1.functions.phpにコードを記述
もっとも簡単な方法としては、テーマフォルダのfunctions.phpに以下のコードを追記してあげるだけです。
// functions.php function post_has_archive( $args, $post_type ) { if ( 'post' == $post_type ) { $args['rewrite'] = true; $args['has_archive'] = 'archivepage'; //URLとして使いたい文字列 } return $args; } add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 );
上記コードの赤文字の部分がアーカイブページのURLとなります。
http://example.com/archivepage
のように。
テンプレートは「archive.php」などが適用されます。このテンプレートに投稿一覧ページのソースコードやループなどを記述して作成します。
2.パーマリンク設定を更新する
管理画面の「設定」>「パーマリンク設定」を開き、保存をクリックして一度更新します。
3.アーカイブページのテンプレートを作成・アップロードしたら、URLを確認
アーカイブページのテンプレート(archive.phpなど)を作成できたらサーバにアップロードします。試しにいくつか投稿をしてみて、記事の一覧がきちんと生成できているかを確認しましょう。