我是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