使帖子永久链接到一致数字

时间:2013-01-11 作者:Georgi Demirev

我正在开发一个新网站,但我还不能完全找到解决我的永久链接问题的方法。

我的主要网站是http://w3spine.com, 我正在向我的第二个WP安装发送帖子http://w3lol.com 我希望posts permalinks是像w3lol一样一致的数字。com/50,w3lol。com/51,w3lol。com/52等。

我不能使用帖子ID,因为wp\\U帖子中存储了大量其他内容,ID跳过了一些数字(例如,如果给定帖子的ID为50,在最佳情况下,下一个帖子的ID为54(50是帖子ID,51和52是默认的修订,53是下一篇帖子的附加图像),更不用说如果我碰巧对某篇帖子进行了修订,或者添加一页或任何数字会增加的内容。

将post-slug用作永久链接并不是问题,但普通用户会发现很难/不可能跟踪他们以前的会话,另外我希望得到这样一个简短的URL外观。

我愿意接受任何能达到我想要的效果的解决方案。

附言:使用slug作为permalink(%postname%),我的意思是每个帖子都有自己的名字,我不能将其更改为50、51、52等。这显然是一个解决方案,但另一方面会产生另一个问题。

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

我真的没有时间也没有意愿编写和调试代码来实现这一点,但我可以为您指出如何实现这一点。警告一句:这当然不简单。

你必须将当前号码保存在某个地方,以便每次添加帖子时都可以检索并增加它,我会在an option.

你必须通过custom field 因此可以查询它们。这将通过save_post 行动挂钩。使用下划线作为自定义字段键的前缀,以在管理UI中隐藏它。

当WordPress生成post permalink时,您必须将该数字插入到post permalink中,这是通过post_link 过滤器(遗憾的是,没有codex的例子,但你可以在这个网站上找到一些例子,我自己也写了一些)。

收到传入请求时,您需要a rewrite rule 将其转换为查询变量。我将添加一个在重写规则中设置的自定义查询变量,以便在解析查询时可以查找此查询变量并重建查询(example of adding a query varadd_rewrite_tag). 您可能需要设置一个虚拟post id或其他内容来通过parse_requestparse_query 阶段。

生成实际SQL查询时,必须根据与自定义查询变量匹配的自定义字段的值更改查询以加载帖子,您可以在pre_get_posts 行动看见WP_Query 有关为自定义字段查询设置查询变量的信息。

结束

相关推荐

Fix html inside a for loop

我想为第二个链接获得正确的链接格式,我尝试了很多次移动a open标记,但结果不可能如下图所示。foreach( $terms as $term ) : echo \'<div class=\"one_half last\">\'; $customposts = new WP_Query( \"taxonomy=$taxonomy&term=$term->slug&posts_per_page=2\" ); &