背景:
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.