簡體   English   中英

Wordpress - 自定義帖子類型和自定義永久鏈接結構錯誤

[英]Wordpress - Custom Post Type and Custom Permalink Structures Error

我有3個自定義帖子類型設置,我為每個創建了自定義永久鏈接結構。 我遇到的問題是我使用自定義永久鏈接設置的第三個自定義帖子類型正用於前兩個。

例:

  • 分類
  • 雇用
  • 贊助

以上是帖子類型,我將自定義永久鏈接結構設置為(對於每個):/ post_type / post_id /

現在,上面的順序是他們設置的順序,贊助接管所有這些順序。 例如:

/classified/100/
/employment/101/
/sponsorship/102/

以上都使用永久鏈接:

/sponsorship/100/
/sponsorship/101/
/sponsorship/102/

發生此錯誤的錯誤是什么? 它是永久鏈接結構錯誤嗎? 下面是我用於為每個創建自定義永久鏈接結構的代碼。 唯一的區別是%c_id%更改為分類,就業和贊助的%e_id%和%s_id%。 此外,對“分類廣告”的任何提及都分別改為就業和贊助。

add_action('init', 'classifieds_rewrite');
function classifieds_rewrite() {
    global $wp_rewrite;

    $queryarg = 'post_type=classifieds&p=';
    $wp_rewrite->add_rewrite_tag('%c_id%', '([^/]+)', $queryarg);
    $wp_rewrite->add_permastruct('classifieds', '/classifieds/%c_id%/', false);
}

add_filter('post_type_link', 'classifieds_permalink', 1, 3);
function classifieds_permalink($post_link, $id = 0) {
    global $wp_rewrite;
    $post = &get_post($id);
    if ( is_wp_error( $post ) )
        return $post;
    $newlink = $wp_rewrite->get_extra_permastruct('classifieds');
    $newlink = str_replace("%c_id%", $post->ID, $newlink);
    $newlink = home_url(user_trailingslashit($newlink));
    return $newlink;
}

謝謝您的幫助! :)

如果我理解正確,你注冊了3種不同的帖子類型,並且你試圖重寫每個帖子類型,所以他們的slug在post id之前。 從每個帖子類型的slug開始,當你注冊每個帖子類型時,你似乎沒有發出重寫,這是正確的嗎? 如果沒有,您可以通過在注冊每個帖子類型時添加以下內容和其他參數來處理此部分。

'rewrite' => array( 'slug' => 'classified', 'with_front' => true )

其他參考資料包括廣泛的永久鏈接重寫: http//shibashake.com/wordpress-theme/wordpress-permalink-add

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM