用wp_kses_post保存时在wp_EDITOR内转义的引号

时间:2016-10-28 作者:Uriahs Victor

您好,我有一个设置屏幕,允许用户使用wp\\U editor()从帖子和页面中创建HTML电子邮件,使用他们已经习惯的编辑器;

一切似乎都很好,除了当我尝试用引号中的文本保存时,当值返回时,它有转义,我知道这是因为wp\\u kses\\u post();清理数据,但如果用户想要创建一封包含引号的HTML电子邮件,该怎么办?

我知道我可以做str\\u替换,但还有其他方法吗?我是否应该使用wp\\u kses\\u post();如果我计划允许报价?

wp_editor code:

wp_nonce_field(\'tld_wcdpue_settings_nonce_action\', \'tld_wcdpue_settings_nonce_field\');

$tld_wcdpue_settings_email_content = get_option(\'tld_wcdpue_settings_email_content\');

wp_editor( $tld_wcdpue_settings_email_content, \'tld_wcdpue_settings_wpeditor\', array( \'wpautop\' => false ) );

wp_editor saving code:

if( isset(//does authentication here) ){

update_option( \'tld_wcdpue_settings_email_content\', wp_kses_post( $_POST[\'tld_wcdpue_settings_wpeditor\'] ) );

}
当它保存到DB时,它会被转义,因此返回:

enter image description here

我知道我可以简单地做一个str\\u替换,但这不是违背了wp\\u kses\\u post的目的吗?我应该在这种情况下使用它吗?我还意识到,当从db中提取数据时,我并没有逃逸,因为我想在编辑器中呈现HTML,所以不确定应该如何逃逸

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

Wordpress总是转义超级全局变量中遇到的引号。在中完成https://developer.wordpress.org/reference/functions/wp_magic_quotes/

你很可能想用stripslashes 在将其保存到数据库之前。类似于

update_option( \'tld_wcdpue_settings_email_content\', wp_kses_post( stripslashes($_POST[\'tld_wcdpue_settings_wpeditor\'] ) ));

SO网友:cowgill

我认为你不需要使用wp_kses_post().

update_option() 跑步sanitize_option() 这会帮你照顾好一切。

测试一下,让我知道发生了什么。

相关推荐

Escaping Quotes

出于某种原因,当我尝试像嵌入视频一样放置视频时,我的视频在代码中有斜杠,但如果我将其添加到模板中,那么代码就可以了,我被告知它的“转义引号”无论如何,这就是我所拥有的。函数文件<?php add_action ( \'edit_category_form_fields\', \'extra_category_fields\'); function extra_category_fields( $tag ) { //check for existing featu