开发者

How to forbidden wordpress url exchange `&` to `#038;`?

开发者 https://www.devze.com 2023-02-23 00:22 出处:网络
I want to pass some value through url in wordpress, but I met some trouble that wordpress will exchange & to #038; automatically, how to make a & still as a &a开发者_如何学Pythonmp; ?

I want to pass some value through url in wordpress, but I met some trouble that wordpress will exchange & to #038; automatically, how to make a & still as a &a开发者_如何学Pythonmp; ?

I noticed in wp-includes/formatting.php, there has many rules to exchange symbols, I tried modify some code, but failed.

some link like

site.com?this=that&that=this will output to the web browser address like site.com?this=that#038that=this

and the page can not get the value in the part that=this

how to setting correctly? thanks.


You can disable wptexturize() by adding this in a functions.php file inside your template folder (or add it to the existing one):

remove_filter('the_content', 'wptexturize');

But note that this will of course disable all the "cleaning", not just the '&' conversion.

If you prefer to just get rid of the ampersand conversion you can comment line 962 in formatting.php. I post lines 961 and 962 bellow (this is from an unaltered WP 3.1):

// Converts lone & characters into & (a.k.a. &)  
$content = preg_replace('/&([^#])(?![a-z1-4]{1,8};)/i', '&$1', $content);


I also had this problem, after some research I found this plugin which fixes it. After installing the plugin you just add these tags around the piece of code you don't want wordpress to format. Like so:

<!-- noformat on -->
Your code with & in it
<!-- noformat off -->

Hope that helps!


One More Solution:

wp-includes\formatting.php: in esc_url () comment the line

$url = str_replace( '&', '&', $url );

It works for me.

0

精彩评论

暂无评论...
验证码 换一张
取 消