2
出於某種原因,我不能創建具有相同的URL結構多CPT,例如我不能讓下面的工作:多個自定義文章類型,相同的URL結構
/cpt1/overview
/cpt1/events
/cpt2/overview
/cpt2/events
結束意外事件發生的是以下:
/cpt1/overview
/cpt1/events
/cpt2/overview-2
/cpt2/events-2
我試圖在一個乾淨的安裝之後可溼性粉劑,以確保沒有被搞亂起來:
add_action('init', function()
{
register_post_type('cpt1', array(
'labels' => array(
'name' => __('CPT1'),
'singular_name' => _x('Page', 'singular name'),
'add_new' => _x('Add New', 'page'),
'all_items' => __('All Pages'),
'add_new_item' => __('Add New Page'),
'edit_item' => __('Edit Page'),
'new_item' => __('New Page'),
'view_item' => __('View Page'),
'search_items' => _x('Search Pages', 'plural'),
'not_found' => _x('No pages found', 'plural'),
'not_found_in_trash' => _x('No pages found in Trash', 'plural'),
'parent_item_colon' => '',
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'cpt1', 'with_front' => false),
'show_in_nav_menus' => false,
'hierarchical' => true,
'supports' => array('author', 'title', 'editor', 'custom-fields', 'page-attributes', 'revisions'),
));
});
add_action('init', function()
{
register_post_type('cpt2', array(
'labels' => array(
'name' => __('CPT2'),
'singular_name' => _x('Page', 'singular name'),
'add_new' => _x('Add New', 'page'),
'all_items' => __('All Pages'),
'add_new_item' => __('Add New Page'),
'edit_item' => __('Edit Page'),
'new_item' => __('New Page'),
'view_item' => __('View Page'),
'search_items' => _x('Search Pages', 'plural'),
'not_found' => _x('No pages found', 'plural'),
'not_found_in_trash' => _x('No pages found in Trash', 'plural'),
'parent_item_colon' => '',
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'cpt2', 'with_front' => false),
'show_in_nav_menus' => false,
'hierarchical' => true,
'supports' => array('author', 'title', 'editor', 'custom-fields', 'page-attributes', 'revisions'),
));
});
我可能在做什麼?如何?
進一步發現
,就像我跟這進一步..好像WordPress的工作將重定向以下(含出我做任何額外的配置)...
/cpt2/overview/
/cpt2/events/
到
/cpt2/overview-2/
/cpt2/events-2/
我發現了下面的wp函數wp_unique_post_slug(帶有一個可用的過濾器),它檢查頁/帖子的段落,如果它發現重複(附加-2,-3等),則返回一個獨特的段落。在函數本身,它確實做了post_type檢查,但是隻有當post_type被設置爲非等級時,否則它會找到所有的分層post_types並檢查所有的唯一性(例如帖子,頁面,書籍,活動..作爲例子)。