创建一个WordPress窗口小部件 - 如何仅当页面上的窗口小部件加载脚本

创建一个WordPress窗口小部件 - 如何仅当页面上的窗口小部件加载脚本

问题描述:

我正在构建一个允许用户构建简单窗体(以便他们可以在定制程序中创建窗体)的wordpress窗口小部件。与所有控件形式一样,我有几个我正在加载的脚本,但是,如果联系人表单窗口小部件在页面上处于活动状态,我只想加载这些脚本。创建一个WordPress窗口小部件 - 如何仅当页面上的窗口小部件加载脚本

这里是我的小部件代码的开始:

if(!class_exists('Layers_Form_Builder_Widget')) { 
class Layers_Form_Builder_Widget extends Layers_Widget { 

    function Layers_Form_Builder_Widget(){ 

     /* Widget code in here */ 

    } 
    } 
} 

正如你看到的,我的小部件被包裹在类Layers_Form_Builder_Widget,所以打电话给我处理脚本在我的网页的头我已经使用了以下:

public function layers_form_builder_process_script() { 
     if(class_exists('Layers_Form_Builder_Widget')) { 
      require_once(LAYERS_FORM_BUILDER__PLUGIN_DIR . 'assets/js/magic.php'); 
     } 
    } 
    add_action('wp_head', array($this, 'layers_form_builder_process_script')); 

上面的代码增加是使用我Layers_Form_Builder_Widget类作为一个if语句来加载处理脚本。我的希望是,如果小部件不在页面上,那么脚本不会显示在头部 - 但是,情况并非如此。

任何帮助搞清楚如何加载这个脚本只在页面上的小部件正在使用时,将不胜感激。

+0

[检查WordPress的维基](https://codex.wordpress.org/Function_Reference/is_active_widget)'is_active_widget($回调,$ WIDGET_ID, $ id_base,$ skip_inactive);''是我用过并为我工作的 – theblackgigant

使用此功能对于了解你的部件是主动或不

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