display text on the same line

时间:2018-01-31 作者:Eric Trometer

无论我做什么(是否剥离html标记),以下语句都会在两行而不是一行上显示结果:

$text = sprintf( \'<p>%1$s %2$s</p>\', wp_filter_nohtml_kses( the_author_meta(\'user_firstname\') ), __( \'hasn\\\'t published any articles yet.\', \'monochrome-pro\' ) );
知道为什么会这样吗?

1 个回复
最合适的回答,由SO网友:swissspidy 整理而成

请注意the_author_meta() 不会返回meta值,但会回显它。这就是为什么这个名字突然在<p> 要素

使用get_the_author_meta() 如果需要返回(并处理)字段,而不仅仅是显示它。

我强烈建议您更改__() 同样,因为这对翻译人员没有用处,因为它缺少作为上下文的名称。

/* translators: %s: user\'s first name */
$text = sprintf(
  __( "%s hasn\'t published any articles yet.", \'monochrome-pro\' ),
  esc_html( get_the_author_meta( \'user_firstname\' ) )
);

echo \'<p>\' . $text . \'</p>\';
注意:如果你不信任你的翻译,你应该使用esc_html() 在…上$text 而不是用户元。正如评论中提到的,使用KSES函数有点过头了。如果您想去掉任何HTML标记(而不是仅仅转义它们),我会使用wp_strip_all_tags().

结束
display text on the same line - 小码农CODE - 行之有效找到问题解决它

display text on the same line

时间:2018-01-31 作者:Eric Trometer

无论我做什么(是否剥离html标记),以下语句都会在两行而不是一行上显示结果:

$text = sprintf( \'<p>%1$s %2$s</p>\', wp_filter_nohtml_kses( the_author_meta(\'user_firstname\') ), __( \'hasn\\\'t published any articles yet.\', \'monochrome-pro\' ) );
知道为什么会这样吗?

1 个回复
最合适的回答,由SO网友:swissspidy 整理而成

请注意the_author_meta() 不会返回meta值,但会回显它。这就是为什么这个名字突然在<p> 要素

使用get_the_author_meta() 如果需要返回(并处理)字段,而不仅仅是显示它。

我强烈建议您更改__() 同样,因为这对翻译人员没有用处,因为它缺少作为上下文的名称。

/* translators: %s: user\'s first name */
$text = sprintf(
  __( "%s hasn\'t published any articles yet.", \'monochrome-pro\' ),
  esc_html( get_the_author_meta( \'user_firstname\' ) )
);

echo \'<p>\' . $text . \'</p>\';
注意:如果你不信任你的翻译,你应该使用esc_html() 在…上$text 而不是用户元。正如评论中提到的,使用KSES函数有点过头了。如果您想去掉任何HTML标记(而不是仅仅转义它们),我会使用wp_strip_all_tags().