質問: パラレル:カスタム投稿の種類 - >カスタム分類法 - >投稿 私はwordpressの書き換え規則の処理に問題があり、助けを借りることができます。_shows_というカスタム投稿タイプがあります。すべての shows には、単一のカスタム分類カテゴリがあります_show-category_. _show_は、複数の_show-category_を持つことはありません。私のurlはこのようにしてルーティングしたいと思います。www.mysite.com/shows/ => archive-shows.php www.mysite.com/shows/%category%/ => taxonomy-show-category.php www.mysite.com/shows/%category%/%postname%/ => single-shows.php 実世界の例として、_show-category_ "foo"と_show_として "foo"を含む "bar"という_show-category_投稿があるとしましょう。私のwordpressアプリは次のようになるはずです。www.mysite.com/shows/foo/ => shows all posts under the foo category www.mysite.com/shows/foo/bar => shows the indivual post 可能な限り私はプラグインを避けようとしますが、どんな解決策にも自由です。
回答: まず、 分類法を登録して そしてslugのrewrite引数をshowsに設定します。register_taxonomy( 'show_category', 'show', array( 'rewrite' => array( 'slug' => 'shows', 'with_front' => false ), // your other args... ) ); 次に、 投稿タイプを登録します そして、スラッグをshows/%show_category%に設定し、has_archive引数をshowsに設定します。register_post_type( 'show', array( 'rewrite' => array( 'slug' => 'shows/%show_category%', 'with_front' => false ), 'has_archive' => 'shows', // your other args... ) ); 最後に、post_type_linkにフィルタを追加して、個々のショーパーマリンクのショーカテゴリを置き換えます。function wpa_show_permalinks( $post_link, $post ){ if ( is_object( $post ) && $post->post_type == 'show' ){ $terms = wp_get_object_terms( $post->id, 'show_category' ); if( $terms ){ return str_replace( '%show_category%' , $terms[0]->slug , $post_link ); } } return $post_link; } add_filter( 'post_type_link', 'wpa_show_permalinks', 1, 2 ); _編集_ 上記のhas_archiveのregister_post_type引数を忘れたため、showsに設定する必要があります。