我需要将一个单独的js文件加载到一个小部件中,但它无法正常工作。到目前为止我有
if ( is_active_widget( false, false, $this->id_base, true ) ) {
function tab_widget_scripts() {
wp_register_script( \'tabs\', plugins_url( \'tabs.js\', __FILE__ ), array(), false, true );
wp_enqueue_script( \'tabs.js\' );
}
}
在我的
function __construct()
然后
do_action( \'wp_print_footer_scripts\', \'tab_widget_scripts\' );
内部
public function widget( $args, $instance )
. 谁能告诉我我做错了什么吗?
最合适的回答,由SO网友:Tom J Nowell 整理而成
有3个问题。
首先,你在打电话do_action
, 触发操作:
do_action( \'wp_print_footer_scripts\', \'tab_widget_scripts\' );
实际上,您希望向其添加函数,而不是触发它。您应该这样做:
add_action( \'wp_print_footer_scripts\', \'tab_widget_scripts\' );
其次,您正在注册此脚本:
tabs
然后将此脚本排队:
tabs.js
很明显,它们不匹配,就像我给你蛋糕的配料,然后告诉你做拿铁一样,这是行不通的。
第三,仅当小部件显示在前端时,才定义函数。这有点奇怪,您应该使用add_action
并始终对其进行定义,从而节省对is_active_widget