簡體   English   中英

自定義分類Wordpress的永久鏈接

[英]Permalink for Custom Taxonomy Wordpress

目前,我有一個WordPress網站,該網站包含名為“案例研究”的頁面,博客和自定義帖子類型。

我的永久鏈接設置是一個自定義結構,該結構是:/ blog /%postname%/,以便我可以在所有博客文章的URL中顯示“博客”。

我的自定義帖子類型的URL結構為http://www.my-domain/case-studies/case-study-url-here/ ,在以下設置下可以正常使用。

    "rewrite" => array('slug' => 'case-studies', 'with_front' => FALSE),

我有一個自定義分類法,可以按部門對我的案例研究進行分類,因此,我創建了一個分類法,即“ division”,我希望其URL為“ http://www.my-domain/case-studies/division-here/,但當前是顯示類似“ http://www.my-domain/blog/case-studies/division-here ”的錯誤信息。

為了從部門URL中刪除單詞博客,我將其重寫代碼更改為如下所示。

    "rewrite" => array( 'slug' => 'case-studies', 'with_front' => false),

但是問題是,通過這樣做,我無法正確進入部門分類法頁面,而是顯示了我網站上的一些隨機頁面或帖子,但是帶有“ blog”基礎的舊URL可以正常工作,並且在其中顯示了案例研究列表我將“ with_front”設為真; 但這不是我想要的。

有什么幫助嗎? 如何從URL中刪除博客並使其正常工作?

問候馬諾伊·索尼

在您的自定義帖子類型中,您需要添加重寫段,例如'rewrite' => array('slug' => '%division%', 'with_front' => false ),

然后您需要在功能文件中添加以下代碼。

function d_reset_permlinks( $post_link, $post ){
    if ( is_object( $post ) && $post->post_type == 'case-studies' ){
    $terms = wp_get_object_terms( $post->ID, 'division' );
    if( $terms ){
        return str_replace( '%division%' , $terms[0]->slug , $post_link );
    }
   }
   return $post_link;
}
 add_filter( 'post_type_link', 'd_reset_permlinks', 1, 2 );

並用帖子名稱重置永久鏈接,然后檢查。

暫無
暫無

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

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