WordPressのカスタム投稿タイプで404エラーが出たときの解決策

※当サイトにはプロモーションが含まれています。

クライアントクライアント

NEWSなどのお知らせを作成したけど、404というエラーが表示される何とかしてくれ。

企業や美容院、整骨院などのホームページでは、「お知らせ」や「NEWS」などを記載することがあると思います。

NEWSの記載例

それを管理するための仕組みが、ワードプレス(WordPress)には予め用意されていて、カスタム投稿タイプという機能を使って設定することができます。

※テーマによっては、カスタム投稿タイプが用意されていない場合や、異なる設定がされている場合もあります。

しかし、これらの「お知らせ」や「NEWS」の記事である

カスタム投稿タイプの記事が404エラーで表示されない!

ということが起きた場合の解決方法を紹介します。

パーマリンク設定の更新

カスタム投稿タイプを追加した後、WordPressがパーマリンクを認識できていないことがあります。

これを解決するために、パーマリンク設定を再保存します。

左メニューにある

設定 > パーマリンク

を選択。

設定 > パーマリンク

設定は何も変更する必要がないので、そのまま保存します。

これで、カスタム投稿タイプのURLが認識され、記事が表示されるようになると思います。

リライトルールを強制的に再生成する

多くの場合、パーマリンクの更新で解決すると思いますが、それでも表示されない場合は、リライトルールを強制的に再生成します。

以下のコードをfunction.phpに記述します。

add_action('init', function() {
flush_rewrite_rules();
});

コードを追加した後、再度パーマリンクを保存(更新)してください。

そのあとは、このコードは必ず削除してください。

何故なら、flush_rewrite_rules()は非常に重い処理だからです。

その為、このコードは必ず削除してください。

重要なことなので、繰り返し記述しました。

なお、これでも解決しない場合は、プラグインの干渉を疑った方がいいかもしれません。

特に、有名なプラグインである「Yoast SEO」はパーマリンクのリライトに関わる機能を持っている為、404エラーの原因になることがあります。

function.phpの場所は?

function.phpは、だいたいどのテーマも、

外観 > テーマエディター

にあります。

テーマエディター

テーマエディターに移動したら、編集するテーマが、現在、使用しているテーマかを確認しましょう。

問題なければ、「function.php」を選択します。

function.php

選択したら、一番下に以下のコードを追加します。

add_action('init', function() {
flush_rewrite_rules();
});

最後に、「ファイルを更新」ボタンで、保存(更新)します。

function.phpへのコード記載例

※全角スペースなどが入ると、正しく動作しない可能性があるので、コピーしたコードは、一度メモ帳などに貼り付けて確認してみましょう。