カスタム投稿タイプのページが「見つかりません」


17

他のプロジェクトで問題なく正常に使用したコードを使用して、2つの新しいカスタムポストタイプを作成しました。1つ目はtop_charts、もう1つは、と呼ばれ、case_studies両方が管理メニューに正しく表示され、新しい投稿を作成できます。

残念ながら、新しい投稿は表示されません。404.php返事が来ました。

archive-top_charts.php表示できるかどうかを確認するためにを作成しましたが、404.php「ページが見つかりません」という返信が表示されます。

私はもともとカスタム投稿top-chartsとに名前を付けましたcase-studiesが、ハイフンが問題である可能性があると考えたため、代わりにアンダースコアを使用するように名前を変更しました。助けにはなりませんでした。

パーマリンクを再保存しようとしましたが、何も変わっていません。私の.htaccessページもあなたが期待するもののように見えます(そして、他のページは問題なく動作します)。他に何を確認できますか?


1
flush_rewrite_rules(false)を使用しましたか?登録ポストタイプ?詳細については、このリンクをたどってくださいnooshu.com/page-not-found-with-custom-post-types
jas

ありがとう。投稿自体へのリンクは修正されましたが、archive-top_charts.phpページは修正されませんでした。奇妙な!
ジャンゴラインハルト

他のユーザーを助け、同様にアーカイブを探してみてください。
ジャス

別のスタックポストでこのバグに対する簡単な答えが見つかりました:カスタムポストタイプパーマリンクページが見つかりません
-dnll

回答:


18

見つからないカスタム投稿を修正するには、以下のコードを使用してくださいfunctions.php

flush_rewrite_rules( false );

これは一時的な手段としてのみ行う必要があります。そうしないと、ページがロードされるたびに実行されます。

詳細については、このリンクに従ってください

表示されarchive-top_charts.phpないものについては'has_archive' => true、投稿タイプを登録するときに持っていることを確認してください。


'has_archive'が見つかりました:)
jas

25

PHPコードを編集する必要はありません!

他の回答と同様に、カスタム投稿タイプを登録する関数でこれを行うことができますが、設定メニューでこれを行うこともできますので、PHPコードに触れないでください:

ダッシュボードからWordPressの書き換えルールまたはパーマリンクをフラッシュするには(通常、新しいカスタム投稿タイプの場合は手動で行う必要があります):

  1. メインメニューで「設定>パーマリンク」を見つけます。
  2. 必要に応じて下にスクロールし、「変更を保存」をクリックします。
  3. 書き換えルールとパーマリンクはフラッシュされます。

とても簡単です!

パーマリンクの保存ページの画像 参照


2
私も必要だと思いhas_archiveますが、メニューから強制的にフラッシュを実行できることを知っておくと良いでしょう。
ジャンゴラインハルト

1
CPTカテゴリ/用語が追加されるたびに[設定]> [パーマリンク]に移動するのではなく、パーマリンクの変更を自動的に保存(更新)する方法はありますか?設定にアクセスできない場合、非管理者はこれをどのように行うことができますか?新しいカテゴリを追加してパーマリンクを自動的にフラッシュするときにフックを呼び出すことはできますか?
ライアンクールウェブ

0

私はこれがゲームの後半にあることを認識しています(そして関連する問題ではないかもしれません)が、考えられる問題を他の人に指摘したかったのです。

私の場合、分類法をツールに書き換え、コンテンツタイプを同じものに書き換えました。したがって、競合であるため、適切に機能しません。残念ながら、そのようなことは検出されないため、他の人に指摘するだけだと考えました。


-1

私の場合、開発フォルダの権限が欠落していたため、.htaccessファイルを作成または変更できませんでした。

そのため、WP Permalinksの手動フラッシュまたは変更の保存は役に立ちませんでした。

解決策は、自分で.htaccessファイルを作成することでした

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.