我是PHP新手,这是评论中的一段代码。php文件:
printf(
/* translators: 1: title. */
esc_html__( \'<hr><Thoughts about \'. get_the_title() .\'<hr>\', \'rainbowcats\' ),
\'<span>\' . get_post_meta($post->ID, \'usp_title\',true) . \'</span>\'
);
正如你可能猜到的,它会打印
<hr>不管怎样,围绕着这个?(记住,我是个新手,以前从未使用过printf命令。。
最合适的回答,由SO网友:Camille V. 整理而成
如果我能很好地理解你的问题,你的结果就会表明你<hr> 以文本形式。
当您使用esc_html__( string $text, string $domain = \'default\' ), 返回的输出被转义,这意味着:
" 替换为"& 替换为& < 替换为<> 替换为>因此,您的<hr> 返回为文本,而不是html标记。要解决这个问题,您只需移动<hr> 在您的esc_html__() :
<?php printf(
\'<hr>\'.esc_html__( \'Thoughts about \'. get_the_title(), \'rainbowcats\' ).\'<hr>\';
); ?>
此外,我不明白你想用什么来实现目标\'<span>\' . get_post_meta($post->ID, \'usp_title\',true) . \'</span>\' 作为printf(format,arg), 你应该用%s 在第一个参数中。但要记住把它放在外面esc_html__() !有关更多信息,请参阅:https://www.w3schools.com/php/func_string_printf.asp