WordPressで投稿ページをデフォルトのもの以外にも追加することがあると思います。その時に専用の記事の一覧ページも作る必要があります。
しかし一覧ページに投稿したコンテツが表示されなくて困りました。
archive.phpについて
まず、archive.phpについての仕組みの説明を少し。
WordPressで投稿記事の一覧を表示するファイルがarchive.phpです。
投稿タイプ({post_type})を定義していればarchive-{post_type}.phpのファイルを優先して表示するのがWordPressの仕組みです。
状況
Custom Post Typeのプラグインでnewsというカスタム投稿タイプをつくって
archive-news.php
で新着情報一覧を表示したいと思っていましたが/news/にアクセスしても404 not foundエラーでコンテンツが表示されません。
原因
どうやらCustom Post Typeの初期設定でarchive-{post_type}.phpを使わないようになっていたのが原因でした。
解決方法
WordPress管理画面→CPT UI→「Edit Post Types」タブの
「Has Archive」の項目を「True」に変更
この項目はarchive-{post_type}.phpを使用するか否かの設定です。これをTrueつまり「使う」に設定を変更するわけです。
これで表示されました。いやー、ドツボにはまりました。WordPressは普段使わないのでなかなか知識が蓄積されません…。