web-dev-qa-db-ja.com

ページ区切り付きのカスタム投稿タイプのアーカイブ

「プロジェクト」というカスタム投稿タイプ( ペーストビン )があり、ダッシュボードに「プロジェクト」というページが表示されます。テンプレート。 ( ペーストビン

問題は、WP_PageNaviを使用してページ付けを組み込んで2ページをクリックすると、404というエラーが発生することです。カスタム投稿タイプとページに同じ名前を付けることはできないためです。ページ名を "Projects 2"に変更してもうまくいったので、それが正しいことがわかりました。

しかし、カスタム投稿タイプの名前を変更すると、それがURLに反映されます。カスタム投稿タイプを 'projects'ではなく 'projects2'に変更した場合、URLは次のようになります。mysite.com/projects2/single-post

ところで、私のカスタムパーマリンクを/%category%/%postname%/に設定しています。

同様に、審美的な理由でページの名前を「プロジェクト2」に変更することはできません。

では、どうすればこれを回避できますか。これは私を何時間も夢中にさせています。私は本当に有用なアドバイスをいただければ幸いです。

1
J82

書き換えアナライザでわかるように、/projects/page/2/は、projects=page&page=/2の代わりにpagename=projects&paged=2を設定します。ですから、この特別な場合のために書き換え規則を追加するだけです(あなたのカスタム投稿タイプを登録した後のregister_projects()関数では、良い場所になるでしょう):

add_rewrite_rule( 'projects/page/([0-9]+)/?$', 'index.php?pagename=projects&paged=$matches[1]', 'top' );

パーマリンクページにアクセスするか、他の方法で、書き換え規則をフラッシュしてください。

2
Jan Fabry

そのより良い方法は、あなた自身のpaginatinを作ることです:

echo paginate_links(array(
  'current' => 5,
  'total' => 9,
  'prev_text' => '« Prev'
));

またはカスタムソリューションを介して、この2記事を参照してください。

0
bueltge