2013-07-09 148 views
2

我一直在爲此奮鬥了幾天,而且我似乎沒有接近解決方案。我一直在尋找論壇和教程網站,但最終變得更加困惑,因爲似乎有很多方法和變化來實現我所期待的。通過分類術語來過濾WordPress自定義文章類型

我想要做的是創建一個自定義帖子類型存檔,可以通過基於url字符串的分類術語進行過濾。

_domain/products/_

_domain/products/taxonomy-term/_

_domain/products/taxonomy-term/product-1_

所以分類項將只顯示該類型的自定義信息。

我已經得到了這個。這似乎適用於域名/ products/taxonomy_term/product_1,但沒有選擇任何檔案模板。

// define custom post types 
    add_action('init', 'create_products'); 
    function create_products() { 

     register_post_type('products', 
      array(
       'labels' => array(
        'name' => __('Products'), 
        'singular_name' => __('Product') 
       ), 
      'public' => true, 
      'has_archive' => true, 
      'supports' => array('title', 'editor', 'excerpt', 'thumbnail', 'revisions'), 
      'rewrite' => array('slug' => 'products/%product_cat%', 'with_front' => true), 
      'hierarchical' => true, 
      'query_var' => true, 
      'show_in_nav_menus' => true, 
      'menu_position' => 5 
      ) 
     );  
    } 

    add_action('init', 'create_my_taxonomies', 0); 
    function create_my_taxonomies() { 
    register_taxonomy(
     'product_cat', 
     'products', 
     array(
      'labels' => array(
       'name' => 'Product Categories', 
       'add_new_item' => 'Add New Product', 
       'new_item_name' => "New Product Category" 
      ), 
      'show_ui' => true, 
      'show_tagcloud' => false, 
      'hierarchical' => true, 
      'rewrite' => array('slug' => 'products', 'with_front' => true), 
      'query_var' => true, 
     ) 
    ); 
} 

function filter_post_type_link($link, $post) 
{ 
    if ($post->post_type != 'product_listing') 
     return $link; 

    if ($cats = get_the_terms($post->ID, 'product_cat')) 
     $link = str_replace('%product_cat%', array_pop($cats)->slug, $link); 
    return $link; 
} 
add_filter('post_type_link', 'filter_post_type_link', 10, 2); 
+0

你有沒有得到這個地方,有同樣的問題? – Tofuwarrior

+0

我有確切的問題。你有沒有解決這個問題? –

+0

也許這將有助於:http://wordpress.stackexchange.com/questions/49141/rewriting-a-custom-post-type-permalink-with-taxonomy-term –

回答

0

對我來說,這是一個命名衝突。我有一個與分類法同名的帖子類型。這導致了衝突。

register_post_type('some_name'); 
register_taxonomy('some_name'); 

將分類法重命名爲獨特的東西。

register_taxonomy('some_tax_name'); 
相關問題