使用esc_url( $url )
对于应显示的URL,以及esc_url_raw( $url )
是否应将URL发送到数据库。
第一个将取代裸安培数&
具有&
.第二个是第一个的包装;这只会抑制符号的逃逸两个功能都将检查协议。看见wp_allowed_protocols()
对于列表:\'http\', \'https\', \'ftp\', \'ftps\', \'mailto\', \'news\', \'irc\', \'gopher\', \'nntp\', \'feed\', \'telnet\', \'mms\', \'rtsp\', \'svn\', \'tel\', \'fax\', \'xmpp\'
所以URL像javascript:alert("Hacked!");
无法通过这些函数不完全是验证器。它们对值进行清理。但只要有URL要保存或显示,就应该使用它们。
还有wp_validate_redirect( $location, $default )
.
$location
此处是URL,并且$default
如果第一个值未验证,则返回URL。从其文档块:
验证在重定向中使用的URL。
检查$位置是否使用允许的主机(如果它有绝对路径)。因此,插件可以在列表中设置或删除允许的主机。
注意:允许的主机不包括多站点安装的所有(子)域。不知道为什么。