我在Wordpress模板中有以下PHP代码,它获取用户搜索查询文本并将其插入到字符串中:
$name = sprintf( esc_html__( 'Search Results for: %s'), get_search_query());
上述行有效,结果如下:
"Search Results for Doggy Bags"
我不明白的是,它为什么有效?在esc_html__()
有机会将前一个函数中的占位符(%s)替换为搜索查询字词之前,sprintf()
是否应先运行?
谢谢,
答案 0 :(得分:1)
你是对的。 esc_html__()
先运行,然后将其输出返回sprintf()
。
esc_html__()
函数返回the translation of Search Results for: %s
and escapes it for safe use in HTML output。
如果此字符串没有已定义的翻译,则其输出为Search Results for: %s
。实际上,它变成了:
sprintf("Search Results for: %s",get_search_query());
然后:
sprintf("Search Results for: %s","Doggy Bags");
最后,它变成了:
Search Results for: Doggy Bags