Wordpress如何在转义html标签时使用换行符



我想把Welcome to %sThanks for creating account on %1$s分开,使它们分别出现在单独的行中。

当翻译RTL站点上的短语时,它们目前被挤在一起/混乱。

protected function send_account_email( $user_data, $user_id ) {

$to      = $user_data['user_email'];
$subject = sprintf( esc_html__( 'Welcome to %s', 'my-plugin' ), get_option( 'blogname' ) );
$body    = sprintf( esc_html__( 'Thanks for creating account on %1$s. Your username is: %2$s ',
'my-plugin' ), get_option( 'blogname' ), $user_data['user_login'] );
}

你需要一个"换行";把他们分开!您可以使用html标记,如:

  • br标签
  • p标签
  • h1标签

只是举几个例子!

但是你正在使用esc_html__来翻译和转义html。为什么需要使用esc_html__从数据库中检索博客的名称?为什么?

话虽如此,您可以同时对translateescape unwanted html使用白名单技术。

使用wp_kses,你可以定义一个"白名单"。为允许的html标签,并转义其余的。

你可以阅读更多关于它:

wp_ksesDocs

这篇关于html标签白名单的文章


你的代码应该是这样的:

使用<br>标签:

protected function send_account_email( $user_data, $user_id ) {
$whitelist_tags = array(
'br' => array(),

);

$to      = $user_data['user_email'];
$subject = sprintf(wp_kses(__('Welcome to %s <br>', 'my-plugin'), $whitelist_tags), get_option( 'blogname' ));
$body    = sprintf( esc_html__( 'Thanks for creating account on %1$s. Your username is: %2$s ',
'my-plugin' ), get_option( 'blogname' ), $user_data['user_login'] );
}

或者使用<p>标签:

protected function send_account_email( $user_data, $user_id ) {
$whitelist_tags = array(
'p' => array()

);

$to      = $user_data['user_email'];

$subject = sprintf(wp_kses(__('<p>Welcome to %s </p>', 'my-plugin'), $whitelist_tags), get_option( 'blogname' ));
$body    = sprintf( esc_html__( 'Thanks for creating account on %1$s. Your username is: %2$s ',
'my-plugin' ), get_option( 'blogname' ), $user_data['user_login'] );
}

或者使用<h1>标签:

protected function send_account_email( $user_data, $user_id ) {
$whitelist_tags = array(
'h1' => array(),

);

$to      = $user_data['user_email'];
$subject = sprintf(wp_kses(__('<h1>Welcome to %s </h1>', 'my-plugin'), $whitelist_tags), get_option( 'blogname' ));
$body    = sprintf( esc_html__( 'Thanks for creating account on %1$s. Your username is: %2$s ',
'my-plugin' ), get_option( 'blogname' ), $user_data['user_login'] );
}

注意:

  • $whitelist_tags是一个数组,所以你可以给它添加多个标签!
  • 另外,我只在$subject变量中使用了这些标签,如果需要,您也可以在$body变量中使用确切的技术!
  • 我还使用__()wp_kses而不是esc_html__的组合,以translateescape unwanted html!

最新更新