2016-05-26 5 views

答えて

0

真の解決策は、 "スラグ/%カテゴリ%" に設定CTPスラグにある

その後の上にCPTパーマリンク (のfunctions.phpに以下のコードを入れて)

add_filter('post_link', 'category_permalink', 1, 3); 
add_filter('post_type_link', 'category_permalink', 1, 3); 


function category_permalink($permalink, $post_id, $leavename) { 
    //con %category% catturo il rewrite del Custom Post Type 
    if (strpos($permalink, '%category%') === FALSE) return $permalink; 
     // Get post 
     $post = get_post($post_id); 
     if (!$post) return $permalink; 

     // Get taxonomy terms 
     $terms = wp_get_object_terms($post->ID, 'category'); 
     if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) 
      $taxonomy_slug = $terms[0]->slug; 
     else $taxonomy_slug = 'no-category'; 

    return str_replace('%category%', $taxonomy_slug, $permalink); 
} 

を更新category.php、小切手を追加する

$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/')); 
//print_r($segments); 
if($segments[1] == 'CPT Slug'){ //Change CPT Slug to your own slug 
//Show CPT posts 
}else{ 
//General posts 
} 
0

カスタムポストタイプにビルトインカテゴリを使用

1

はい、カスタムポストタイプに組み込みのカテゴリを追加できます。

だけfunctions.phpファイル

custom_postはポストタイプキーである
add_action('init', 'add_category_taxonomy_to_custom_post'); 
function add_category_taxonomy_to_custom_post() { 
    register_taxonomy_for_object_type('category', 'custom_post'); 
} 

にコードの下に追加します。

+0

ありがとうございます。別のページにカテゴリ別にカスタム投稿を表示する方法を教えてください。私はCPTの "才能"とカテゴリー "芸術"を持っていると言います。私はCPTの "才能"の下に作成された2つの異なる投稿を持ち、その他は "投稿"の下に作成された一般的な投稿です。両方の投稿は「アート」カテゴリに割り当てられます(これはCPTと一般的な投稿の両方に共通しています)。今私は、一般的な投稿については、カテゴリページをhttp://domain.com/category/art/として見ることができることを知っています。 CPTカテゴリページの場合、URLはhttp://domain.com/talent/art/であるはずですが、404エラーです。 – Piyush

+0

デフォルト/一般的な投稿には 'http://domain.com/category/art'を使い、CPTには' http://domain.com/category/art/?post_type = talents'を使用してください – amit

+0

これをきれいなURL http://domain.com/talent/art/ – Piyush

関連する問題