web-dev-qa-db-ja.com

カスタム投稿タイプごとに1つの分類アーカイブのパーマリンク構造を作成する

それで、私はこれを理解しようとして頭がおかしくなっています。基本的に、2つのカスタム投稿タイプ'the_case_study 'と'the_video'を作成し、それぞれスラッグ'case-studies''videos'を付けています。

The_case_studyとthe_videoの両方に適用される3つの分類法も作成しました。これらは'the_room''the_system'および'the_style'です。

デフォルトでは、分類法アーカイブは与えられた用語でタグ付けされたすべての投稿を表示し、パーマリンクはこのようになります:

example.com/room/kitchen (displays all posts tagged with kitchen)

現在のカスタム投稿タイプの投稿のみを表示 _になり、そのカスタム投稿タイプに関連するパーマリンクを持つことになる分類アーカイブを作成したいと思います。例えば:

example.com/case-studies/room/kitchen (should display all case studies tagged with kitchen)

example.com/videos/room/kitchen (should display all videos tagged with kitchen)

私は他のものの間で この答え に基づいて、サイトの他の場所で同様の問題をすでに解決しました。しかし、私はそれを1つの投稿タイプに対して機能させる方法を知っているだけです。

これは可能であるべきもののように思えますが、私はそれをどうやって進めるかについてわかりません。基本的に、私は現在の分類法ページの親を見つけることができたいのですが、ここでその親は現在のカスタム投稿タイプです...しかし、それがカスタム投稿タイプと分類法の制約を満たす方法がわかりません。

私がやろうとしていることは可能ですか?違う考え方をするべきですか?

4
jpsingleton

これは、カスタムの書き換え規則を追加することによって非常に簡単に行えます。これであなたは始めるでしょう:

add_action( 'init', 'wpse_100386_rewrites' );
function wpse_100386_rewrites() {
    add_rewrite_rule( 'case-studies/room/([^/]+)/?', 'index.php?the_room=$matches[1]&post_type=the_case_study', 'top' );
    add_rewrite_rule( 'videos/room/([^/]+)/?', 'index.php?the_room=$matches[1]&post_type=the_video', 'top' );
}

書き換え規則を変更するときはいつものように、設定 - >パーマリンクに行き、 "Save Changes"をクリックして書き換え規則をフラッシュしてください。

1
Matthew Boynes