自定义小部件的 JS 脚本的最佳方式是什么?
What is the best way to customize a widget’s JS script?
我有一个插件可以提供它自己的小部件。我需要对小部件的 js
文件中的一些事件稍作更改。由于我不想直接编辑 widget.js
文件,我的理解是我需要通过主题的 functions.php
文件注销脚本,然后注册位于主题目录中的自定义版本。检查 widget.php
文件中的脚本后,我看到的是:
function widget( $args, $instance ) {
wp_enqueue_script( 'berocket_aapf_widget-script', plugins_url( '../js/widget.min.js', __FILE__ ), array( 'jquery' ), BeRocket_AJAX_filters_version );
}
因此,在我主题的 functions.php
文件中,我尝试了以下操作来使该脚本出列:
function wpdocs_dequeue_script() {
wp_deregister_script( 'berocket_aapf_widget-script' );
wp_dequeue_script( 'berocket_aapf_widget-script' );
}
add_action( 'wp_print_scripts', 'wpdocs_dequeue_script', 99999999 );
不幸的是,这并不能解决问题。我以正确的方式处理这个问题吗?
首先,我不建议放弃插件自带的JS文件。我知道你在用它复制数据,但还是。
话虽如此,您的代码还是有一些弱点。您需要出列然后注销 script/style。并且您应该尝试将 wp_enqueue_scripts 挂钩中的脚本出队,因为 wp_print_scripts 在 wp_enqueu_scripts.
之后执行
参考:Plugin API/Action Reference
除了以上几点,你做对了。
编辑 1:
我不是建议编辑插件的原始 JS 文件,而是 hook/bind 您的自定义 JS 并使其与原始文件一起工作。
我有一个插件可以提供它自己的小部件。我需要对小部件的 js
文件中的一些事件稍作更改。由于我不想直接编辑 widget.js
文件,我的理解是我需要通过主题的 functions.php
文件注销脚本,然后注册位于主题目录中的自定义版本。检查 widget.php
文件中的脚本后,我看到的是:
function widget( $args, $instance ) {
wp_enqueue_script( 'berocket_aapf_widget-script', plugins_url( '../js/widget.min.js', __FILE__ ), array( 'jquery' ), BeRocket_AJAX_filters_version );
}
因此,在我主题的 functions.php
文件中,我尝试了以下操作来使该脚本出列:
function wpdocs_dequeue_script() {
wp_deregister_script( 'berocket_aapf_widget-script' );
wp_dequeue_script( 'berocket_aapf_widget-script' );
}
add_action( 'wp_print_scripts', 'wpdocs_dequeue_script', 99999999 );
不幸的是,这并不能解决问题。我以正确的方式处理这个问题吗?
首先,我不建议放弃插件自带的JS文件。我知道你在用它复制数据,但还是。
话虽如此,您的代码还是有一些弱点。您需要出列然后注销 script/style。并且您应该尝试将 wp_enqueue_scripts 挂钩中的脚本出队,因为 wp_print_scripts 在 wp_enqueu_scripts.
之后执行参考:Plugin API/Action Reference
除了以上几点,你做对了。
编辑 1: 我不是建议编辑插件的原始 JS 文件,而是 hook/bind 您的自定义 JS 并使其与原始文件一起工作。