背景:
WordPress删除
%0A
因为一般来说,换行符在URL中没有实际用途。除非是
mailto:
协议
WordPress strips out %0A
.
所以最好不要在URL中使用它们。
解决方案:
如果出于任何特定目的必须使用
%0A
, 您可以使用
%250A
然后将其过滤回
%0A
使用
clean_url
滤器
%250A
是的URL编码版本%0A
, i、 e.双URL编码版本newline
.
您可以使用以下代码进行过滤(在插件或活动主题的functions.php
文件):
add_filter( \'clean_url\', \'double_encoded_nl_to_encoded_nl\' );
function double_encoded_nl_to_encoded_nl( $url ) {
return str_ireplace( \'%250A\', \'%0A\', $url );
}
现在,这个:
esc_url( "http://example.com/?q=foo%250Abar" );
将返回
http://example.com/?q=foo%0Abar
.