Wordpress 如何在转义 html 标签时使用换行符
Wordpress how to use line breaks while escaping html tags
我想将 Welcome to %s
和 Thanks for creating account on %1$s
分开显示在单独的行中。
翻译 RTL
网站上的短语时,他们目前 together/messed 卡住了。
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__
从数据库中检索博客名称?为什么?
也就是说,有一种白名单技术可以同时用于 translate
和 escape unwanted html
。
使用 wp_kses
您可以为允许的 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
变量中使用完全相同的技术!
- 为了
translate
和 escape unwanted html
! ,我还使用了 __()
和 wp_kses
的组合而不是 esc_html__
我想将 Welcome to %s
和 Thanks for creating account on %1$s
分开显示在单独的行中。
翻译 RTL
网站上的短语时,他们目前 together/messed 卡住了。
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__
从数据库中检索博客名称?为什么?
也就是说,有一种白名单技术可以同时用于 translate
和 escape unwanted html
。
使用 wp_kses
您可以为允许的 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
变量中使用完全相同的技术! - 为了
translate
和escape unwanted html
! ,我还使用了
__()
和 wp_kses
的组合而不是 esc_html__