2013-09-22 41 views
1

我有一個自定義帖子類型,可以說'工作'。 工作中有一些類別,'taskA'和'taskB' 類別taskA中有一些帖子{post1,post2,post3},類別taskB中有一些帖子{post4,post5,post6}。自定義帖子類型Pagenation和URL衝突

我想列出所有帖子@mydomain.com/work 所以我創建了一個標題工作頁面。 並列出所有帖子。

「工作」下的所有帖子都應該有網址mydomain.com/work/post1 ... 因此,在註冊自定義帖子類型時,我使用重寫段落作爲「工作」。 一切工作正常,直到我希望暢談工作。 訪問網址mydomain.com/work/page/1時,會引發錯誤404。

在將重寫段落改爲'工作'時,錯誤404被解決。

我應該遵循什麼方法來維護所需的url結構?

此外,我想列出'taskA'下所有帖子@mydomain.com/work/taskA 使用重寫slu as'工作'沒有幫助。在使用rewrite slug作爲「工作任務」時,一切似乎都正常。 但網址看起來像mydomain.com/work-task/taskA 任何對改變方法的建議?

回答

2

找到了解決方案!

刪除了頁面工作。 而不是顯示自定義頁面模板中的所有帖子,從archive.php中顯示它。 012,Pagenation將在這一步開始工作。

對於分類學,我將slug改爲'work',並在functions.php中添加了以下代碼。

add_filter('rewrite_rules_array', 'blog_rewrite_rules'); 
function blog_rewrite_rules($rewrite_rules) 
{ 
    $topics = get_terms('work-category', array('hide_empty' => true)); 
    if(is_wp_error($topics)) 
    return $rewrite_rules; 

    $newRules = array(); 

    foreach($topics as $topic){ 
    $newRules['work/'.$topic->slug.'/page/?([0-9]{1,})/?$'] = 'index.php?work-category='.$topic->slug.'&paged=$matches[1]'; 
    $newRules['work/'.$topic->slug.'/?$']     = 'index.php?work-category='.$topic->slug; 
    } 

    return array_merge($newRules,$rewrite_rules); 
} 

Url結構維護和調解工作也一樣!

相關問題