WordPressカスタム投稿タイプが表示されない原因と解決方法【404エラー対処】

WordPress(ワードプレス)

WordPressでカスタム投稿タイプを追加したのに、公開した記事が表示されないというトラブルは意外とよくあります。

管理画面では投稿が正常に登録されているのに、実際にURLへアクセスすると「ページが見つかりません(404エラー)」が表示されてしまうという現象です。

WordPressを触っていると、こうしたトラブルに何度も遭遇することがあります。カスタム投稿の設定自体は問題なく、コードも正しく書いているはずなのに表示されないとなると、原因が分からず悩んでしまうものです。

実際、私自身も何度も同じ状況に遭遇しています。以前は通常投稿ページが表示されないトラブルもありました(WordPressで投稿ページが表示されないトラブルについてはこちらを参照ください)。

しかし、この問題の多くはとても簡単な方法で解決できるケースがほとんどです。今回は、カスタム投稿タイプを追加したのに表示されない場合の原因と解決方法を紹介します。

関連記事 WordPressのカスタム投稿タイプの条件分岐タグまとめ

カスタム投稿タイプが表示されない原因

カスタム投稿タイプを追加したのに記事が表示されない場合、多くの原因はパーマリンク設定とリライトルールにあります。

WordPressでは投稿や固定ページのURLを管理するために「リライトルール」という仕組みが使われています。カスタム投稿タイプを新しく追加した場合、このURLルールが正しく更新されていないと、WordPressがページの場所を認識できず404エラーが表示されることがあります。

特に次のようなタイミングでこの現象が起こりやすくなります。

  • カスタム投稿タイプを新しく追加した
  • register_post_typeの設定を変更した
  • パーマリンク構造を変更した
  • テーマやプラグインを変更した

設定自体が正しくても、リライトルールが更新されていないだけでページが表示されないことがあります。

カスタム投稿が表示されない時の解決方法

この問題は、WordPress管理画面からパーマリンク設定を保存することで解決する場合がほとんどです。設定内容を変更する必要はなく、保存するだけでリライトルールが更新されます。

手順は次の通りです。

  1. WordPress管理画面にログインする
  2. 「設定」→「パーマリンク設定」を開く
  3. ページ下部の「変更を保存」をクリックする

何も設定を変更していなくても、そのまま保存すれば問題ありません。 管理画面からパーマリンクの変更を保存する 保存を実行すると、WordPress内部のリライトルールが更新されます。その結果、新しく追加したカスタム投稿タイプのURLが正しく認識され、404エラーが解消されることがあります。

WordPressの開発ではよくあるトラブルなので、カスタム投稿が表示されない場合はまずこの方法を試してみてください。

flush_rewrite_rules関数を使った方法

コードを使ってリライトルールを更新する方法として、flush_rewrite_rules()関数を使う方法もあります。この関数は、WordPressのリライトルールを手動でリセットするためのものです。

開発中にカスタム投稿タイプを追加する場合、次のようにregister_post_typeの処理と一緒に記述することがあります。

function my_custom_post_type() {
    register_post_type('custom_post',
        array(
            'labels' => array(
                'name' => __('Custom Posts'),
            ),
            'public' => true,
            'has_archive' => true,
        )
    );
    flush_rewrite_rules(); // リライトルールを更新
}
add_action('init', 'my_custom_post_type');

このコードを実行すると、カスタム投稿タイプが登録される際にリライトルールが更新されます。

ただし、この方法は開発時に一度実行する用途として使うのが一般的です。通常の運用中に毎回実行すると、サーバー負荷が増える可能性があります。

実運用では、まず管理画面からパーマリンク設定を保存する方法を試すのが安全です。

カスタム投稿の404エラーはパーマリンク更新で解決することが多い

カスタム投稿タイプを追加したのにページが表示されない場合、まず疑うべきポイントはパーマリンク設定です。多くの場合は、パーマリンク設定を保存するだけでリライトルールが更新され、問題が解決します。

手順はとてもシンプルです。

  1. 管理画面のパーマリンク設定を開く
  2. 設定を変更せずそのまま保存する

これだけでカスタム投稿タイプが正しく表示されるようになるケースが少なくありません。

WordPressを使っていると、このトラブルは意外と頻繁に発生します。もしカスタム投稿の記事が表示されず404エラーになった場合は、まずこの方法を試してみてください。簡単な操作であっさり解決することも多いはずです。