我在stackexchange、google、wordpress论坛上浏览了大量问答。。。但自从引入自定义帖子类型以来,还没有找到一个明确的答案来解决这一常见问题。
我已从Wordpress管理永久链接设置页面将永久链接结构设置为:
/%post_id%/%post_name%/
因为这是提高数据库性能的良好实践
然而,我注意到我的自定义帖子类型(我在一个配置中有几个)仍然显示为:
%cpt_slug%/%post_name%/
而我真正想要的是
%cpt_slug%/%post_id%/%post_name%/
如果它也能像
%cpt_slug%/%post_id%/%taxonomy%/%post_name%/
但就目前而言,我希望在cpt结构中完成post\\u id工作
如何做到这一点?
有一个wordpress插件,但很明显它被撤回了,因为它有一些问题(无论如何,它不再被维护)
最合适的回答,由SO网友:Tom J Nowell 整理而成
function myrules(){
add_rewrite_rule(\'^yourcptslughere/([^/]*)/([^/]*)/([^/]*)/?\',\'index.php?p=$matches[1]&taxonomy=$matches[2]&name=$matches[3]\',\'top\');
}
add_action(\'init\',\'myrules\');
替换\'
yourcptslughere\' 然后将其添加到函数中。php然后刷新您的重写规则,您发布的最后一个示例应该可以工作。我怀疑会是什么
the_permalink()
但是返回,因此您必须自己构造URL,但是它们应该可以在这些URL上查看
e.g.:example.com/randomcptslug/123/exampletaxonomy/testpost