在WP中使用PHP将javascript字符串插入HTML
我需要为WP创建一些小部件,小部件中的设置将是在WP中使用PHP将javascript字符串插入HTML,javascript,php,html,wordpress,Javascript,Php,Html,Wordpress,我需要为WP创建一些小部件,小部件中的设置将是textarea,用户可以在其中插入一些JS代码。然后我的小部件必须使用以下函数将此代码注入WP的footer.php: add_action( 'wp_footer', 'inject_js', 10 ); 在我的inject_js中,我有: function inject_js () { echo esc_attr( get_option('js_code') ); } 一切正常,代码插入HTML,但我面临一个问题。在我的HTM
textarea
,用户可以在其中插入一些JS代码。然后我的小部件必须使用以下函数将此代码注入WP的footer.php
:
add_action( 'wp_footer', 'inject_js', 10 );
在我的inject_js
中,我有:
function inject_js () {
echo esc_attr( get_option('js_code') );
}
一切正常,代码插入HTML,但我面临一个问题。在我的HTML中,我得到如下内容:
<!-- BEGIN JS widget -->
<script type="text/javascript">
var __cp = {
id: "J4FGckYPdasda21OaTnqo6s7kMgeGXdTBAb6SgXMD-A"
};
html_entity_decode(esc_attr( get_option('js_code')));
据我所知,我从用户的textarea
中获得了string
类型中的代码,我必须对引号和其他符号做一些处理,但我真的不知道如何解决这个问题,因为我对PHP是新手
我必须使用什么PHP函数,或者可以使用一些WP函数
我试过:
echo htmlspecialchars(esc_attr( get_option('js_code') ));
及
但是没有任何帮助。将代码包装成这样:-像这样:
<!-- BEGIN JS widget -->
<script type="text/javascript">
var __cp = {
id: "J4FGckYPdasda21OaTnqo6s7kMgeGXdTBAb6SgXMD-A"
};
html_entity_decode(esc_attr( get_option('js_code')));
您将看到
esc\u attr
的效果-函数是对字符串进行html编码(除其他外)
它是为不受信任的用户输入而设计的。由于您的代码是专门为接受来自可信源(站点所有者)的javascript而设计的,所以不要使用它
echo get_option('js_code');
echo get_选项(“js_代码”)
..esc\u attr
正在转义该值,很有趣,所以不要使用它!你试过使用html_解码吗?很好,我把它解码了。@Steve,非常感谢!这对我有用!也许您将此评论作为答案发布?@user1779617为什么对值进行编码(属于esc_attr
)只是为了再次解码?简单地说,不要在第1行对它们进行编码place@TurakVladyslav当然,给我一点时间