2010-05-26 103 views
0

我有以下的代碼來構建一個自定義分類爲我的投資組合:WordPress的自定義分類

add_action('init', 'create_pc_db_taxonomies', 0); 

function create_pc_db_taxonomies() { 
    register_taxonomy('type', 'post', array('hierarchical' => true, 'label' => 'Type', 'query_var' => true, 'rewrite' => array('slug' => 'type'))); 
} 

我建立了我的網站的投資組合類(我刪除了/分類/基地),並創造了一些項目併爲他們設置自定義分類。所以我得到以下設置: http://domain.com/portfolio/item1/但我想要的分類鏈接看起來像這樣:http://domain.com/portfolio/type/web然後這將顯示與該類型相關的投資組合項目的列表。目前他們像http://domain.com/type/web這些創建404的,但我也嘗試添加'組合/類型'作爲分類slu but,但它也只是創建一個404,但我很確定這是做錯的方式無論如何。任何幫助?

感謝

編輯:該網站是在這裏:http://driz.co.uk/的全部工作就是在一個名爲組合類別,每個PIC下的標題和自定義分類(如果你點擊它們,你將獲得404)

回答

0

確保所有插件都被禁用(至少對重寫有所調整),並刪除wp_options表中的選項rewrite_rules

現在刪除您的主題中的所有掛鉤定製稅和帖子類型的掛鉤,然後在init上運行;

register_taxonomy(
    'type', 
    'post', 
    array(
     'hierarchical' => true, 
     'label' => 'Type', 
     'rewrite' => array('slug' => 'portfolio/type') 
    ) 
); 

在您的永久鏈接設置,選擇默認的選項之一,並確保兩者的分類和標籤的基礎設置,然後更新。

轉儲$wp_rewrite和以前一樣,你應該看到這樣的幾行;

[portfolio/type/([^/]+)/page/?([0-9]{1,})/?$] => index.php?type=$matches[1]&paged=$matches[2] 
[portfolio/type/([^/]+)/?$] => index.php?type=$matches[1] 

這些應該靠近數組的最開始處,標記,類別之前。

讓我知道你如何繼續!

(當我在WP 3.0-beta-2安裝中運行代碼時,它可以工作,所以我現在假設有一些奇怪的事情發生)。

+0

我沒有從數據庫轉儲任何東西,但交換了註冊碼,我所有舊的分類標準都消失了,這意味着WP認爲這是不同的不知道爲什麼?但網址現在可以運作。代碼中發生了什麼變化? – Cameron 2010-05-26 21:43:39

+0

你是否介意將你的functions.php文件(或者至少是修改之前的相關代碼)壓縮下載?這樣我們可以更好地瞭解發生了什麼,但是沒有你在這裏發佈大量代碼! – TheDeadMedic 2010-05-26 21:57:52

+0

似乎WP很困惑,因爲我已經命名爲標籤,並認爲它是內置標籤。很奇怪。似乎除了http://driz.co.uk/portfolio/category/development/page/2的分頁外,還有什麼想法?謝謝 – Cameron 2010-05-27 07:54:04

0

我確定你可以使用portfolio/type來僞造一個slu - ,關鍵在於,一旦你更新了你的代碼,你需要刷新的重寫規則。

只需在管理員中重新保存您的固定鏈接設置即可。

+0

試過,但我仍然得到404該網站是在這裏http://driz.co.uk/嘗試點擊每個投資組合項目標題下的小鏈接。 – Cameron 2010-05-26 18:48:28

+0

你可以在主題文件的某處運行這段代碼,並讓我知道你得到了什麼?只需發佈相關內容即可。 '

rules); ?>
' – TheDeadMedic 2010-05-26 18:58:15

+0

哦,剛纔注意到,試着從參數數組中取出'query_var'鍵(再次刷新規則)。 – TheDeadMedic 2010-05-26 19:02:03

相關問題