何时使用__()和esc_html_e

vir*_*ast 8 wordpress

任何人都可以解释为什么我会__()用完esc_html_e()

__() esc_html_e

mai*_*o84 21

__()主要用于不包含需要转义的标记的简单文本.它的不同之处在于_e()前者返回翻译后的文本,后者则翻译后的文本相呼应.

esc_html_e()并且esc_html__()类似,但它们用于包含标记的字符串.它们各自转义提供的字符串,然后根据您使用的字符串调用相应的_e()__()对应的字符串.

如果您接受用户输入提供的字符串,则必须转义HTML.XSS攻击可能是接受用户输入并在页面上呈现它的站点上最常见的攻击类型.<script>如果输入未正确清理或转义,攻击者可以轻松提供标记并在您的页面上执行任意Javascript.


rne*_*ius 7

就像文档状态,esc_html_e()检索翻译字符串,它逃脱,并呼应的结果。__() 返回翻译后的字符串。这些功能中每一个的来源都使这一点变得清晰:

function __( $text, $domain = 'default' ) {
    return translate( $text, $domain );
}

function esc_html_e( $text, $domain = 'default' ) {
    echo esc_html( translate( $text, $domain ) );
}
Run Code Online (Sandbox Code Playgroud)