WP_INSERT_POST生成的混合固定链接

时间:2012-04-03 作者:faulty

我正在写一个插件,它使用wp_insert_post() 以编程方式插入帖子,我的永久链接设置为/%category%/%postname%/

在所有插入的帖子中,wp_posts.guid 显示两种类型的输出。下面会有一些帖子/%category%/%postname%/ 还有一些/?p=POST_ID. 当我使用get_permalink(), 我也得到了混合的结果,就像存储在wp_posts.guid

我想知道是什么原因导致了这种情况,我如何才能强制所有帖子都遵循我的永久链接配置?

同时,如何强制所有链接/p=POST_ID 根据permalink设置重定向,在这种情况下/%category%/%postname%/?

非常感谢。

编辑:我后来发现那些带有默认永久链接的帖子实际上是“草稿”帖子。很抱歉造成混淆。

1 个回复
最合适的回答,由SO网友:David Gard 整理而成

WP中的永久链接实际上与wp_posts.guid 再也没有了。我相信,从历史上看,他们是这样做的,并且因为RSS提要而被保留了下来,也就是说,更改它们会使人们的提要认为这些帖子没有被阅读过。

permalink结构存储在wp_options 表(添加echo \'<pre>\'; print_r($wp_rewrite); echo \'</pre>\'; 查看规则)。

get_permalink() 应该在循环中使用,除非您正在对其解析页面ID(get_permalink(15)), 所以这可能是问题的根源。

我还建议您将永久链接重置为默认值,保存它们,然后将它们设置为“Day and name”,保存它们,看看是否有效。这样做的原因是刷新规则,然后创建一些正确的规则。我建议使用“日期和名称”,因为WP(3.3.1)的当前版本中存在一个问题,将永久链接设置为“Postname”无法正确创建规则。

如果上面给出了工作规则,那么请尝试自定义结构,它应该可以工作。

结束

相关推荐

Archive permalinks

这个网站对我学习如何使用add\\u过滤器重写永久链接非常有帮助,可以解决我们将两个博客合并为一个博客时遇到的问题。但是,我确实有一件物品我找不到任何提示:在基于日期的存档链接上,即www.domain。com/2011/12/我只是想把它们翻译成:www.domain。com/news/2011/12/提前感谢您的帮助。