问题描述

困境

我有几个自定义帖子类型:

  • 投资项目

  • 褒奖

  • 常见问题解答

这些自定义帖子类型的 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。