WordPressのデフォルトの投稿機能のテンプレートでindex.phpではなくarchive.phpを使う方法

wordpressをインストールした際の管理画面左にある投稿をつかって
index.phpではなく、archive.phpのテンプレートで記事一覧を表示するには、設定が必要。

インストールしたディレクトリにはarchive.phpがあるが、使い方がいまいちわからない。

今までは使い方がよくわからないのでfunction.phpにカスタム投稿の設定を記述して、archive-blog.phpで記事一覧を作成していたが
やはりデフォルトの投稿が気になるので使い方を調べてみた。

archive.phpはデフォルトでは無効となっている。

そのため以下の手順で設定していく

管理画面の 設定 > パーマリンク にて以下のカスタム構造にチェック

https://ドメイン名/%category%/%postname%/

とする。
この/%category%/の部分を自分の好きなスラッグとかにしてはダメ

その後、function.phpで以下を記述

function post_has_archive( $args, $post_type ) {
	if ( 'post' == $post_type ) {
		$args['rewrite'] = true;
		$args['has_archive'] = 'news'; //任意のスラッグ名
	}
	return $args;
}
add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 );

そして実際に管理画面にある投稿のカテゴリを作る

そして記事を書いてみる

そして

実際の記事にアクセスしてみる
https://ドメイン名/news/test1/

問題なく記事が表示されたら一覧にアクセスしてみる
https://ドメイン名/news/

これで問題なく表示されてたらOK

タイトルとURLをコピーしました