Wordpress - 仅在必要时加载小部件JS

时间:2011-07-06 16:44:26

标签: wordpress

我是wordpress开发的新手并创建了一个工作正常的小部件,但是我不确定如何依赖为小部件加载必要的JS。

目前的代码是:

wp_enqueue_script('my_script', '/path/to/necessary.js');

class widget extends WP_Widget {
    function widget(){
        ....
    }
}

我想只在窗口小部件实际包含在页面上时才加载该脚本。因为它不在每个页面上,所以我浪费地在某些页面上加载JS。如果我将wp_enqueue_script放在widget函数中,它就不起作用,因为它在模板循环中并且标题已经写出来了。我知道我可以将<script>标记放入widget函数中,但这似乎违反了WP标准,所以我正在寻找“正确”的方法来实现这一点。

2 个答案:

答案 0 :(得分:4)

看看is_active_widget( $callback, $widget_id, $id_base, $skip_inactive );

仅在窗口小部件处于活动状态时加载脚本:

<?php
if ( is_active_widget( false, false, $this->id_base, true ) ) {
    wp_enqueue_script( 'jquery' );
}
?>

http://codex.wordpress.org/Function_Reference/is_active_widget

答案 1 :(得分:0)

大多数Wordpress小部件都用于所有“用户” - 而非管理页面。基本上,您需要确定哪些页面加载窗口小部件,测试它,如果它通过,则将脚本添加到标头。如果它只是首页,那么您可以在标题中使用php测试并将脚本排队...如果它是具有特定类别的页面,请检查并排队脚本...您将获得图片。 wordpress codex是你的朋友