【问题标题】:What is the best way to customize a widget’s JS script?自定义小部件的 JS 脚本的最佳方法是什么?
【发布时间】:2017-06-16 19:37:05
【问题描述】:

我有一个为其自己的小部件提供服务的插件。我需要对小部件的 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 );

不幸的是,这并没有奏效。我是否以正确的方式处理这个问题?

【问题讨论】:

    标签: jquery wordpress plugins widget


    【解决方案1】:

    首先,我不建议放弃插件自己的 JS 文件。我知道你正在用它复制数据,但仍然如此。

    话虽如此,您的代码有一些弱点。您需要出列然后取消注册脚本/样式。您应该尝试在 wp_enqueue_scripts 钩子中将脚本出队,因为 wp_print_scripts 在 wp_enqueu_scripts 之后执行。

    参考:Plugin API/Action Reference

    除了以上几点,你做对了。

    编辑 1: 我不建议编辑插件的原始 JS 文件,而是挂钩/绑定您的自定义 JS 并使其与原始文件一起工作。

    【讨论】:

    • 您是在建议我编辑插件的小部件 JS 文件吗?我只是担心更新插件时可能会覆盖编辑。
    • @Presto 不,我建议绑定/挂钩您的自定义 JS 以使用原始代码。如果您可以发送您的站点链接和您想要添加的 JS,也许我可以提供更多帮助。
    • 我目前在本地工作。你有关于挂钩现有 JS 的参考吗?
    • @presto 请原谅我的词汇,但如果您对 HOOK 和 WP 的钩子这两个词感到困惑。挂钩到 JS,我的意思是绑定到它或使它与原始 JS 一起工作。
    • 能否发一个简单的例子说明如何绑定到原版JS?
    猜你喜欢
    • 2015-06-16
    • 2015-12-11
    • 2014-02-28
    • 2022-07-03
    • 2021-06-09
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多