カスタム投稿の一覧ページが表示されない場合
カスタム投稿の一覧ページが表示されない場合次の事が考えられる。順に解説したいと思います。
'has_archive' => true
が抜けているarchive-sample.php
ファイルがない- 管理画面からのパーマリンク設定の更新をしていない
‘has_archive’ => trueが抜けている
通常の投稿にはメニューの左上に【投稿一覧を表示】といったリンクがあります。カスタム投稿の場合'has_archive' => true
とパラメータを配列にセットしないとカスタム投稿に【投稿一覧を表示】といったリンクが表示されません。
下記のコードは色々と抜けていますが'has_archive' => true
と追加すれば管理画面上に【投稿一覧を表示】といったリンクが表示されます。
add_action( 'init', 'register_post_type_sample' );
function register_post_type_sample(){
$labels = [
'name' => 'Sample',
];
$args = [
'labels' => $labels,
'public' => true,
'show_in_rest' => true,
'has_archive' => true,
];
register_post_type('sample', $args);
}
もしここの設定で表示されない場合はカスタム投稿用のテンプレートファイルが用意されていない、またはパーマリンク設定に問題がある可能性がありますので下記をご覧ください。
archive-{post_type}.phpファイルがない
カスタム投稿の投稿一覧を表示させるテンプレートファイルは下記の順で優先的にテンプレートファイルを読み込み出力されます。
archive-{post_type}.php
archive.php
index.php
archive-{post_type}.php
の場合{post_type}
の記述が間違っていると表示されず、archive.php
の内容が反映されます。
のファイル名はarchive-{post_type}.php
register_post_type('post_type', $args);
で設定している'post_type'
に該当します。
管理画面からのパーマリンク設定の更新をしていない
パラメータ$args
で'rewrite'
を追記した場合、【管理画面】の【設定】にある【パーマリンク】にアクセスし【変更を保存】を更新しないとうまくページが表示されませんので必ず更新をしてください。