如何禁止wordpress url交换`&`到`#038;`?

时间:2011-04-09 12:49:13

标签: wordpress symbols

我想在wordpress中通过url传递一些值,但我遇到了一些问题,即wordpress会自动将&交换为#038;,如何使&仍为& 1}}?

我在wp-includes/formatting.php注意到,有许多规则要交换符号,我尝试修改一些代码,但失败了。

这样的链接

site.com?this=that&that=this将输出到site.com?this=that#038that=this

等网络浏览器地址

并且页面无法获取部分that=this

中的值

如何正确设置?感谢。

3 个答案:

答案 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 );

它对我有用。