我一直在开发一个插件,它可以在激活时向侧边栏添加脚本。到目前为止,我已经能够显示代码,但它加载在页面底部,而不是侧边栏中。
我对开发WordPress插件还很陌生,所以如果您能提供更详细的说明,我将不胜感激。
这是Github上代码的链接。
/**
* Front-end display of widget.
*
* @see WP_Widget::widget()
*
* @param array $args Widget arguments.
* @param array $instance Saved values from database.
*/
public function widget( $args, $instance ) {
echo $args[\'before_widget\'];
if ( ! empty( $instance[\'title\'] ) ) {
echo $args[\'before_title\'] . apply_filters( \'widget_title\', $instance[\'title\'] ). $args[\'after_title\'];
}
wp_enqueue_script( \'external-script\', \'https://d21djfthp4qopy.cloudfront.net/humanitybox.js\', array( \'jquery\' ), \'1.0.0\', true );
//echo __( \'Hello, World!\', \'text_domain\' );
echo $args[\'after_widget\'];
}
SO网友:kovshenin
这是意料之中的行为,因为你在打电话wp_enqueue_script
中间页,所以在这一点上<head>
船已经开航了,唯一的选择是在船尾排队,这很好。
我没有花太多时间阅读您排队的实际脚本,但它似乎正在做一些document.write()
一旦加载,这就是为什么您可能会在页脚中看到输出。
为了解决您的问题,我将重新构建一点脚本,将其转换为接受元素的函数,然后在小部件输出中调用该函数:
<div id="my-widget-id"></div>
<script>
jQuery(document).ready(function($){
my_function($(\'my-widget-id\'));
});
</script>
这样,脚本将等待您的。js文件加载到页脚中,然后调用其传递小部件ID的函数,希望可以使用该ID将输出插入
$.html()
.
希望有帮助!