WordPress 3.0のリリースに伴い、WordPressテーマに「カスタム投稿タイプ」を追加できるようになりました。これは非常に貴重なツールであり、私が作成した多くのWordPressテーマで使用されています。現在、カスタム投稿タイプは非常に人気があり、ほとんどすべてのWordPressテーマで使用されています。しかし、カスタム投稿タイプを使用したことがある人はおそらく、 dreadful 404 Not Foundエラー 投稿タイプから投稿にアクセスしようとしたとき。幸いなことに、ほとんどの場合、これらのエラーを修正するための簡単な修正があります.


以下に、カスタム投稿タイプに関する一般的な問題と、これらのエラーが発生する理由を示します。うまくいけば、彼らは少なくとも数人の人々を助けるでしょう.

1.パーマリンク設定を確認する

これはおそらく、カスタム投稿タイプで404エラーが発生する最も一般的な理由の1つであり、私は何度も対処してきました。書き換えルールのフラッシュ(推奨しません)など、多くの修正が見られましたが、個人的には、次の単純な修正で最善を尽くしています。

解決:

  • カスタムパーマリンク構造(%postname%など)を設定する
  • 保存をクリックします
  • 単一のカスタム投稿ページが404エラーページを返すかどうかを確認する
  • もしそうなら、戻ってパーマリンクをデフォルトに戻し、保存してください
  • 次に、カスタムパーマリンクをもう一度設定して保存します

通常、前後に移動することでエラーが修正され、この方法で多くの成功を収めてきました.

現在、一部のサーバーでは、権限が正しく設定されていない場合、これが機能せず、.htaccessファイルを手動で更新する必要がある場合があります。これを行うには、FTPまたはSFTPを介してサイトにログインし、ブラウザーをルートのWordPressディレクトリ(wp-config.phpファイルとwp-contentフォルダーと同じ場所)にログインする必要があります。ここで、変更可能な.htaccessという名前のファイルが見つかります(このファイルが表示されない場合は、FTPプログラムで隠しファイルを表示するオプションが有効になっていることを確認し、隠しファイルがない場合は作成してください)。次に、ファイルにコアWordPressコードが含まれていることを確認します。 WordPressドキュメント, これは次のようになります:

#BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^ index \ .php $-[L]
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule。 /index.php [L]

#ENDワードプレス

重要:既存の.htaccessファイルを変更する場合は、何かが台無しになった場合に備えて、最初にコンピュータ上のファイルをバックアップしてください。.

2.スラッグの競合をチェックします(投稿タイプと同じスラッグのページがある)

404エラーを引き起こす可能性のあるもう1つのことは、投稿タイプの投稿を表示するメインページがあり、実際の投稿タイプの単一スラッグと同じスラッグを持っていることです。たとえば、「portfolio」という名前の投稿タイプがあり、メインの「Portfolio」ページにもスラグ「portfolio」が含まれている場合(つまり、ポートフォリオ投稿にアクセスするには、site.com / portfolio / sample-にアクセスします。 post)これにより、競合が発生し、単一の投稿タイプの投稿で404エラーが発生します。そのため、ポートフォリオ投稿タイプでは、単一のスラッグに「プロジェクト」または「ポートフォリオ項目」というスラッグを使用します。.

解決:

  1. カスタムの投稿タイプとは異なるようにページ名を変更できます
  2. カスタム投稿タイプのスラッグを変更できます。これは、次の場合に書き換えパラメーターを変更することによって行われます。 カスタム投稿タイプの登録

3.自動フラッシュ書き換えルール(開発者向け)

404エラーのもう1つの原因は、新しい投稿タイプが登録されるたびに、WordPressで書き換えルールを「フラッシュ」する必要があることです。これを行うには、[設定]> [パーマリンク]に移動し、[保存]ボタンをクリックします(この投稿の最初のセクションで説明)。.

登録された投稿タイプを使用してカスタムテーマまたはプラグインで作業している場合は、エンドユーザーがテーマまたはプラグインをアクティブ化するときに、書き換えエラーを自動的にフラッシュして、404エラーを防止することを検討してください。以下は、使用できるコードの例です。

//テーマのコード
add_action( 'after_switch_theme'、 'flush_rewrite_rules');

//プラグインのコード
register_deactivation_hook(__FILE__、 'flush_rewrite_rules');
register_activation_hook(__FILE__、 'myplugin_flush_rewrites');
function myplugin_flush_rewrites(){
//ここでCPT登録関数を呼び出します( 'init'にもフックする必要があります)
myplugin_custom_post_types_registration();
flush_rewrite_rules();
}

別のエラーまたは解決策がある?

別のエラーが発生している場合、またはより良い解決策がある場合は、以下にコメントしてお知らせください。それは私を助けるだけでなく、おそらく問題の修正を探している他の人々を助けるでしょう。ありがとう!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me