如何以正确的方式在_e()函数内部连接?

时间:2012-03-27 作者:Pierre

我正在尝试为函数中的标题创建一个函数。php,我在搜索标题部分遇到了一个问题,我必须连接以下问题部分:

elseif (is_search()) {
_e(\'Search for \', \'textdomain\') . \'"\' . esc_html(the_search_quey()) . \'$quot; - \'; }
这篇文章的标题如下:searchtermsitename搜索

没有引号,搜索词附加到网站名称。

我试过这个:

elseif (is_search()) {
_e(\'Search for \' . \'"\' . esc_html(the_search_quey()) . \'$quot; - \', \'textdomain\'); }
它也不起作用,这一个输出:searchtermSearch for“”sitename

这比第一个好,但他搜索的是之前的查询,无法找出原因。

所以,任何帮助,并提前感谢。

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

the_search_query() 回显自身,因此通过将其放入另一个回显函数(什么_e() 是)您将得到第二个示例中的结果。

不建议在l18n函数中使用变量或函数,因为它们无法转换,有关更多信息,请参阅Otto的:Internationalization: You’re probably doing it wrong.

因此,您应该使用如下代码:

printf( __( \'Seach for "%s", \'textdomain\' ), get_search_query() );
请注意,我正在使用get_search_query(), 因为它只是返回值,而不是回显它,所以它还通过esc_attr() 而且不需要esc_html().

SO网友:Geert

关键是使用%s 占位符与sprintfprintf 作用

printf(__(\'Search for “%s”\', \'textdomain\'), esc_html(get_search_query());

http://php.net/sprintf

还要注意的是the_search_query() 直接输出其结果,您需要get_search_query() 返回结果。

结束

相关推荐

Custom metabox translation

我已经创建了一个自定义的帖子类型,并添加了一些自定义的元数据库,现在我想知道我在我的网站上使用了什么样的翻译插件?我对它们都没有经验,所以我不知道谁会支持我的自定义元数据库,谁不会。