問題描述

困境

我有幾個自定義帖子類型:

  • 投資項目

  • 褒獎

  • 常見問題解答

這些自定義帖子類型的 URL 結構如下:

我想使用正常的內置 WordPress 帖子類型來控制我們的博客條目,並且每個博客條目的 URL 都是這樣的:

如果我去設置> 固定鏈接並調整 URL 結構為…

/blog/%postname%/

那麼我的所有帖子類型的 URL 都會受到影響,這會導致:

  • 等等…

問題

我想知道 – 是否可以調整內置 WordPress 文章類型的 URL 結構,而不影響其他自定義帖子類型的 URL 結構?

解決我困境的另一種方法就是創建一個名為”Blog.” 的另外一個自定義的帖子類型這似乎是浪費的,因為我根本就不會使用內置 WordPress 的文章類型。

如果有人需要它,為什麼

如果有人想知道為什麼我在網址中需要”blog”,那是因為我們將我們的博客合併到與我們網站相同的安裝中,並希望保持 URL 不變,這樣我們就不會失去寶貴的 Google 果汁。

任何幫助非常感謝 – 謝謝!

最佳解決方案

您可以在自定義帖子類型註冊時執行此操作。

1) 將 WordPress 管理員中的默認固定鏈接設置為您想要的結構,例如:

/blog/%postname%

2) 將”slug” 和”with_front” 參數添加到 register_post_type 功能中的 rewrite-array 。 “slug” 必須是您的 post-type 的名稱。

  $args = array(
    // ...
    'rewrite' => array(
        'slug' => 'your_post_type',
        'with_front' => false
    ),
    // ...
  ); 
  register_post_type('your_post_type',$args);

這應該生成以下 rewrite-rules:


Default Post: http://example.com/blog/%postname%
Default Page: http://example.com/%postname%
Custom Post Type: http://example.com/your_post_type/%postname%

EDIT

“slug” 參數是可選的。如果您沒有設置它,則使用您的自定義帖子類型的名稱。查看有關 register_post_type 的功能參考:http://codex.wordpress.org/Function_Reference/register_post_type

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。