问题描述
困境
我有几个自定义帖子类型:
-
投资项目
-
褒奖
-
常见问题解答
这些自定义帖子类型的 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。