我想在wordpress中通过url传递一些值,但我遇到了一些问题,即wordpress会自动将&
交换为#038;
,如何使&
仍为&
1}}?
我在wp-includes/formatting.php
注意到,有许多规则要交换符号,我尝试修改一些代码,但失败了。
像
这样的链接 site.com?this=that&that=this
将输出到site.com?this=that#038that=this
并且页面无法获取部分that=this
如何正确设置?感谢。
答案 0 :(得分:2)
您可以在模板文件夹中的 functions.php 文件中添加此项来禁用wptexturize()(或将其添加到现有文件夹中):
remove_filter('the_content', 'wptexturize');
但请注意,这当然会禁用所有“清洁”,而不仅仅是“&”转换。
如果你想摆脱&符号转换,你可以在formatting.php中注释第962行。我发布了第961行和第962行(这是来自未改变的WP 3.1):
// Converts lone & characters into & (a.k.a. &)
$content = preg_replace('/&([^#])(?![a-z1-4]{1,8};)/i', '&$1', $content);
答案 1 :(得分:1)
我也有这个问题,经过一些研究后我发现this plugin修复了它。安装插件后,您只需在不希望wordpress格式化的代码片段周围添加这些标签。像这样:
<!-- noformat on -->
Your code with & in it
<!-- noformat off -->
希望有所帮助!
答案 2 :(得分:-1)
再解决方案:
wp-includes\formatting.php
:在esc_url ()
对该行进行评论
$url = str_replace( '&', '&', $url );
它对我有用。