首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在wordpress管理面板中解除所有jquery脚本的队列或注销

如何在wordpress管理面板中解除所有jquery脚本的队列或注销
EN

Stack Overflow用户
提问于 2014-11-19 06:24:56
回答 1查看 6.9K关注 0票数 1

我正在开发一个插件,在插件中我使用的是wordpress color picker

color_picker.js:

代码语言:javascript
运行
复制
jQuery(document).ready(function($){
    jQuery('.cp-field').wpColorPicker();
});

在index.php文件中:

代码语言:javascript
运行
复制
add_action('admin_init', 'enqueue_color_picker');
function enqueue_color_picker($hook_suffix) {
    // first check that $hook_suffix is appropriate for your admin page
    wp_enqueue_style('wp-color-picker');
    wp_enqueue_script('cp-script-handle', plugin url.'js/color_picker.js', array( 'wp-color-picker' ), false, true);
}

在此之后,我刷新我的管理页面并查看源代码,所有jquery和jquery脚本在body标记结束前加载,如下所示:

代码语言:javascript
运行
复制
<script type='text/javascript' src='http://site_url/wp-admin/load-scripts.php?c=1&amp;load%5B%5D=hoverIntent,common,admin-bar,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-draggable,jquery-ui-slider,jquery-touch-p&amp;load%5B%5D=unch,iris,wp-color-picker,jquery-ui-sortable,svg-painter,heartbeat,wp-auth-check&amp;ver=4.0'></script>
<script type='text/javascript' src='http://site_url/wp-content/plugins/wp_foo/js/color_picker.js?ver=4.0'></script>

<div class="clear"></div></div><!-- wpwrap -->
<script type="text/javascript">if(typeof wpOnload=='function')wpOnload();</script>
</body>

当我评论颜色选择器功能时,所有的脚本都会出现。

我想卸载或去队列或取消所有不想要的脚本。我也试着去排线或嘲笑脚本,但是什么都没有发生。

代码语言:javascript
运行
复制
add_action('admin_init', 'unload_all_jquery');
function unload_all_jquery() {
    //wp_enqueue_script("jquery");
    $jquery_ui = array(
        "jquery-ui-widget",
        "jquery-ui-mouse",
        "jquery-ui-accordion",
        "jquery-ui-autocomplete",
        "jquery-ui-slider",
        "jquery-ui-tabs",   
        "jquery-ui-draggable",
        "jquery-ui-droppable",
        "jquery-ui-selectable",
        "jquery-ui-position",
        "jquery-ui-datepicker",
        "jquery-ui-resizable",
        "jquery-ui-dialog",
        "jquery-ui-button"
    );

    foreach($jquery_ui as $script){
        wp_dequeue_script($script);
    }
}

有什么建议我该怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-19 07:25:13

为了“取消”管理员中的脚本,您需要将其挂接到'admin_enqueue_scripts'钩子中。这是一个钩子,它也用于对管理脚本进行队列(顾名思义)。

此外,您还需要使用脚本()而不是wp_dequeue_script()。这样做的原因是脚本已经“注册”到队列中,但实际上并没有“排队”。因此,您的最终脚本将如下所示:

代码语言:javascript
运行
复制
add_action('admin_enqueue_scripts', 'unload_all_jquery');
function unload_all_jquery() {
    //wp_enqueue_script("jquery");
    $jquery_ui = array(
        "jquery-ui-widget",
        "jquery-ui-mouse",
        "jquery-ui-accordion",
        "jquery-ui-autocomplete",
        "jquery-ui-slider",
        "jquery-ui-tabs",   
        "jquery-ui-draggable",
        "jquery-ui-droppable",
        "jquery-ui-selectable",
        "jquery-ui-position",
        "jquery-ui-datepicker",
        "jquery-ui-resizable",
        "jquery-ui-dialog",
        "jquery-ui-button"
    );

    foreach($jquery_ui as $script){
        wp_deregister_script($script);
    }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27010337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档