Wordpress 插件:如何传递参数以用作 javascrtipt 标记中的属性?

Joe*_*ger 6 javascript php wordpress

我正在尝试在 WordPress 中编写一个小部件插件,它创建一个 javascript 标签并将其放入页面的页脚中。我知道我可以使用 wp_enqueue_script 来创建它,没问题。但我需要将参数从小部件设置传递到此脚本标记。

例子:

wp_enqueue_script( 'script-name', '/js/example.js' );

将呈现一个看起来像这样的标签:

<script type='text/javascript' src='/js/example.js'></script>

我想要的是创建一个如下所示的标签:

<script type='text/javascript' data-id='12345' src='/js/example.js'></script>

其中 12345 是从小部件设置传入的。

我该怎么做呢?

Joe*_*ger 1

这是我的想法。在创建前端显示部分的小部件代码中,使用以下命令:

add_action('wp_footer',create_function( '', 'echo(\'<script type="text/javascript" data-id="' . $instance['widgetparamname'] . '" src="//someurl.com/some.js"></script>\');' ),1,0);
Run Code Online (Sandbox Code Playgroud)

$instance 已传入,其中包含来自小部件管理界面的值。因此,无论您在小部件中输入什么值,都会显示在该数组中。然后只需引用数组的正确元素即可。

此代码的作用是将操作广告到 wp_footer 挂钩,而不需要其他函数(您不能向其传递任何值),因此您在此处输入的任何内容都将写入网站的页脚区域。

值得注意的是create_function的第一个参数必须为空,否则wordpress会抛出错误。