私は "product_category"と呼ばれるカスタム分類法を作成しました。それは投稿タイプ "books"と "movies"と共有されています。
そのため、両方の投稿タイプに対して異なるテンプレートを作成する必要があります。
両方のテンプレートのデザインが異なるので、両方のpost_type共有分類法(両方のpost_typeで用語が共有される場合でも)は異なるテンプレートを持つ必要があります。
パスは以下のようになります: -
site/books/product_category /ホラー/
site /映画/ product_category /ホラー/
見て、それはのような道を持つことはかなり難しいです
site/books/product_category /ホラー/
site /映画/ product_category /ホラー/
あなたが述べたようにurlを保とうとするならば、ワードプレス機能がcustom_post_typeとそれらの分類法の間で矛盾するように。私はあなたがあなたが抱えている問題の解決策として私が以下に述べることを考慮することを勧めます。
site/product_category/horror /?post_type = books
site/product_category/horror /?post_type = movies
今すぐ共有用語に従ってテンプレートを保持するために、テーマディレクトリに2つのテンプレートを作成します。
そして、このコードを使用して、カスタム投稿タイプに基づいてテンプレートにリダイレクトします。
add_filter( 'template_include', 'wpse_152146_template_override', 99 );
function wpse_152146_template_override(){
if (is_tax()) {
if ( 'books' == $_GET['post_type']) {
$new_template = locate_template( array( 'common-term-books.php' ) );
if ( '' != $new_template ) {
return $new_template ;
}
}
elseif ( 'movies' == $_GET['post_type']) {
$new_template = locate_template( array( 'common-term-movies.php' ) );
if ( '' != $new_template ) {
return $new_template ;
}
}
else
return $template;
}
else
return $template;
}
また、post_typeに基づいてURLを取得するために作成したcustom_term_link関数を使用することもできます。
function get_custom_term_link( $term, $taxonomy, $post_type ){
$link = get_term_link( $term, $taxonomy );
return $link.'?post_type='.$post_type;
}
get_custom_term_link( 'horror', 'product_category', 'books');
テンプレートファイルを作成することを忘れないでくださいcommon-term-books.php&common-term-movies.php。それ以外の場合は、空白の白い画面が表示されます。