esc_html__()函数输出含空格字符串被截断,仅显示首词问题咨询
问题原因与修复方案
嘿,这个问题我太熟悉了!咱们先拆解下你那段代码的问题所在——当PHP完成字符串拼接后,最终输出的input标签会变成这样:
<input class="widget-input" type="text" name="subject" placeholder=Your company name required>
一眼就能看出问题:placeholder属性的值没有被引号完整包裹!HTML解析器会把空格当作属性的分隔符,所以它只会把Your识别成placeholder的有效属性值,剩下的company和name会被当成毫无意义的独立属性,自然就只显示第一个单词啦。
修复方法很简单,给placeholder属性加上引号就行:
你可以直接在拼接时给placeholder加上双引号(因为外层PHP字符串用的是单引号,内部双引号不需要转义,更简洁):
$widgetInputCompanyName = '<div class="widget"><input class="widget-input" type="text" name="subject" placeholder="' . esc_html__( "Your company name", "fbstax" ) . '" required></div>';
如果偏好单引号风格,也可以给内部单引号转义:
$widgetInputCompanyName = '<div class="widget"><input class="widget-input" type="text" name="subject" placeholder=\'' . esc_html__( "Your company name", "fbstax" ) . '\' required></div>';
这样生成的HTML里,placeholder的值会被完整包裹成placeholder="Your company name",浏览器就能正确识别整个字符串作为提示文本了。
内容的提问来源于stack exchange,提问作者zakharov.arthur
相关产品推荐
相关产品推荐

