在esc_html_e()中是否可以换行?

时间:2018-02-04 02:03:25

标签: php wordpress line-breaks

我使用以下代码:

<p><?php esc_html_e( 'It looks like nothing was found at this location. Maybe try one of the navigation links above or a search? Or it is possible you are trying to access a restricted page without being logged in to gain access.', 'shapely' ); ?></p>

最终显示如下:

  

看起来在这个位置找不到任何东西。也许尝试上面的导航链接之一或搜索?或者你有可能   试图访问受限制的页面而不登录获取   访问。

我想要显示的是:

  

看起来在这个地方找不到任何东西。

     

也许可以尝试上面的导航链接或搜索?

     

或者您可能正在尝试访问受限制的页面   登录以获取访问权限。

所以我想要的是打破界限的方法。我尝试了<br />\n,但都没有效果。有没有办法在esc_html_e()函数中添加换行符?

2 个答案:

答案 0 :(得分:1)

首先,您不能在单引号内使用\n。此外,换行符不会在网页上呈现。从事物的外观esc_html_e()实际上回应输出,以便捕捉&amp;处理它你需要做这样的事情:

ob_start();
esc_html_e("Line1\nLine2\nLine3");
$output = ob_get_contents();
ob_end_clean();
echo nl2br($output);

但这似乎是一件非常糟糕的事情,可能是错误的方式。如果您需要输出html,可能不会使用esc_html_e()开头。没有更多的背景,真的很难说。

答案 1 :(得分:0)

我知道这是一个更老的问题,我想指出的是,无需在PHP中使用输出缓冲功能。您可以通过调用WordPress函数esc_html __()而不是esc_html_e()来简化此代码。此函数将返回转义的值,而不是将其回显。

https://developer.wordpress.org/reference/functions/esc_html__/

ffmpeg-python