当前浏览:首页 / WordPress函数 / esc_url()

esc_url( string $url, string[] $protocols = null, string $_context = 'display' )

检查并清理URL

e 翻译more...

  • __() 检索$text的翻译
  • _e() 显示翻译文本
  • _ex() 使用gettext上下文显示翻译后的字符串
  • _n_noop() 在POT文件中注册多个字符串,但不翻译它们
  • _n() 基于提供的数字翻译和检索单数或复数形式
  • _nx_noop() 在POT文件中使用gettext上下文注册多个字符串,但不翻译它们
  • _nx() 使用gettext上下文,根据提供的数字检索单/复数形式进行翻译
  • _x() 使用gettext上下文检索已翻译的字符串
  • esc_attr__() 检索$text的翻译并将其转义,以便在属性中安全使用
  • esc_attr_e() 显示为在属性中安全使用而转义的翻译文本

esc 转义more...

  • esc_attr__() 检索$text的翻译并将其转义,以便在属性中安全使用
  • esc_attr_e() 显示为在属性中安全使用而转义的翻译文本
  • esc_attr_x() 使用gettext上下文翻译字符串,并将其转义以在属性中安全使用。
  • esc_attr() 转义HTML属性
  • esc_html__() 检索$text的翻译并将其转义,以便在HTML输出中安全使用。
  • esc_html_e() 显示为在HTML输出中安全使用而转义的翻译文本。
  • esc_html_x() 使用gettext上下文翻译字符串,并将其转义,以便在HTML输出中安全使用
  • esc_html() 转义HTML块
  • esc_js() 转义单引号、"、 、&,并修复行尾。
  • esc_textarea() 转义textarea值

urlmore...


描述

从URL中删除了许多字符。如果URL用于显示(默认行为),则符号也会被替换。‘clean_url’过滤器应用于返回的已清理的URL。


参数

$url

(string) (必填) 要清理的URL。

$protocols

(string[]) (可选) 可接受协议的数组,默认返回值为wp_allowed_protocols()

默认值: null

$_context

(string) (可选) 私有的,使用esc_url_raw()进行数据库使用。

默认值: 'display'


返回

(string) 应用‘clean_url’过滤器后清理的URL。如果$url指定的协议不是$protocols中的协议,或者$url包含空字符串,则返回空字符串。


说明

清理url(在文本节点、属性节点或任何其他位置)时,始终使用esc_url。拒绝没有提供的白名单协议之一的URL(默认为http、https、ftp、ftps、mailto、news、irc、gopher、nntp、feed和telnet),消除无效字符并删除危险字符。此函数将字符编码为HTML实体:在生成(X)HTML或XML文档时使用它。编码符号和(&)和单引号(')作为数字实体引用(&#038,&#039)。

如果URL看起来是一个不包含方案的绝对链接,则预先添加http://前缀。请注意,相对url(/my-url/parameter2/)以及锚点(#myanchor)和参数项(?myparam=yes)也可以作为特例进行过滤,而无需将默认协议前置到过滤的url。

替换已弃用的clean_url()



源码

查看源码 官方文档


更新日志

版本描述
2.8.0开始引入

使用示例

  • 示例1

    添加主页链接
    如Twenty Thirteen主题所示,尽管为了示例而简化了

    <a href="<?php echo esc_url( home_url( '/' ) ); ?>">Home</a>
    
    
  • 示例2

    如果URI协议不是允许的协议之一,esc_url()的结果是空字符串。WordPress允许的默认协议列表可以用以下代码扩展:

    <?php
    /**
     * Extend list of allowed protocols.
     *
     * @param array $protocols List of default protocols allowed by WordPress.
     *
     * @return array $protocols Updated list including new protocols.
     */
    function wporg_extend_allowed_protocols( $protocols ){
    	$protocols[] = 'skype';
    	$protocols[] = 'spotify';
    	$protocols[] = 'macappstores';
    	return $protocols;
    }
    add_filter( 'kses_allowed_protocols' , 'wporg_extend_allowed_protocols' );
    ?>
  • 示例3

    此函数还应用于转义“img”标记的“src”属性:

    <img src="<?php echo esc_url( $image_url ); ?>" alt="..." />

    它还应用于“form”标记“action”属性:

    <form action="<?php echo esc_url( $form_submit_url ); ?>">