具有add_query_arg()
向URL添加其他参数很好,创建重写规则也很容易。到目前为止还不错。但问题是wordpress所做的URL替换。
当我有URL时,例如:
www.mysite.com/?page_id=1&myvar=test
我用激活的永久链接将这个URL键入浏览器的地址行。此链接将变为:
www.example.com/pagename/?myvar=test
BUT: 我想得到的是:
www.example.com/pagename/test
最后,我想使用如下代码:
<a href="<?php add_query_arg( \'myvar\', \'test\', get_permalink() ) ?>"> .... </a>
这将导致:
www.example.com/pagename/test
如何做到这一点?我花了几个小时阅读文档,但找不到解决方案。
SO网友:Ramos Abdellaziz
WordPress不会让你轻易做到这一点。事实上,重写规则是您在WordPress中实现这类功能的唯一选择,当您的站点增长时,WordPress重写规则会变得非常混乱,因为插件和主题(以及您自己)可能会在(多)站点安装中的现有规则之上添加自定义重写规则。
@如果您已经有了密钥的重写规则(myvar),并且在第一个条件中使用永久链接,然后在没有这些条件的情况下回退到传统的查询字符串,那么swissspidy解决方案将起作用@JohnathanJoosten解决方案展示了在WordPress中重写规则是如何变得非常复杂的(想象一下,对所有查询字符串键和值都这样做…)
之前,我在为我的客户开发一些中型项目时遇到过这个问题,我能够使用一个名为Obfusquer的插件实现类似的功能。据该网站称,它用用户定义的密钥屏蔽了所有WordPress查询字符串,还提供了高级自定义要求的挂钩。
有趣的是,它没有列在WordPress插件库中,我认为您需要订阅(我认为这确实是可以承受的,因为一个许可证即使在多站点安装中也可以工作),但是here is a link 如果您需要在WordPress安装中屏蔽/隐藏查询字符串,请访问它。他们也有文件here.
我现在几乎在我所有的wordpress项目中都使用这个插件,希望它能帮助您的需要。干杯