是否可以在不影响其他自定义帖子类型的URL的情况下更改常规帖子类型的URL?


9

困境

我有一些自定义帖子类型:

  • 投资组合项目
  • 感言
  • 常见问题

这些自定义帖子类型的URL结构为:

  • mysite.com/ 投资组合 /自定义帖子的名称
  • mysite.com/ 推荐 /自定义帖子的名称
  • mysite.com/ 常见问题 /自定义帖子的名称

我想使用普通的内置WordPress帖子类型来控制我们的博客条目,并使每个博客条目的URL如下所示:

  • mysite.com/ 博客 / post-name

如果我转到“设置”>“永久链接”,然后将URL结构调整为类似...

/blog/%postname%/

...然后我所有帖子类型的URL 都受到影响,结果是:

  • mysite.com/ 博客/投资组合 /自定义帖子的名称
  • mysite.com/ 博客/推荐书 /自定义帖子的名称
  • 等等...

问题

我想知道的是-是否可以在不影响其他自定义帖子类型的URL结构的情况下调整内置WordPress帖子类型的URL结构?

我看到的解决困境的另一种方法是创建另一个名为“博客”的自定义帖子类型。这似乎很浪费,因为那样的话我根本就不会使用内置的WordPress帖子类型。

如果有人需要,为什么

如果有人想知道为什么我非常需要URL中的“博客”,那是因为我们将博客合并到与站点相同的安装中,并且希望保持URL完整,以免失去宝贵的Google汁液。

非常感谢您的帮助-谢谢!


我几乎是逐字逐句地问这个问题,很高兴我发现了这个,谢谢
JasonDavis 2012年

Answers:


14

您可以在自定义帖子类型注册中执行此操作。

1)将WordPress管理员中的默认永久链接设置为所需的结构,例如:

/ blog /%postname%

2)将“ slug”和“ with_front”参数添加到register_post_type函数的rewrite-array中。“子弹”必须是您的帖子类型的名称。

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

这将生成以下重写规则:

默认帖子:http://example.com/blog/%postname%
默认页面:http://example.com/%postname%
自定义帖子类型:http://example.com/your_post_type/%postname%

编辑

“ slug”参数是可选的。如果未设置,则使用自定义帖子类型的名称。查看有关register_post_type的功能参考:http : //codex.wordpress.org/Function_Reference/register_post_type


你绝对是男人。这很完美;谢谢!
瑞安

@rofflox。请看一下这个问题(wordpress.stackexchange.com/questions/52471/…)。我尝试了您的回答,但这并没有帮助我。
平均乔

0

替代方法-您可以设置永久301重定向。这将使人们转到正确的链接,并保持您的Google果汁完整无缺。不过,我不知道您的特定问题的答案。


谢谢mrtsherman。我问我们的SEO人员这样做,被告知您通过301重定向而失去了一点Google汁。我很乐意不丢失任何东西,但是如果其他所有方法都失败了,我可以走这条路。
瑞安

@Ryan-+1有趣,我的公司刚刚要求做与昨天下午完全相同的事情。希望有人通过。
mrtsherman 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.