创建一个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语句来加载处理脚本。我的希望是,如果小部件不在页面上,那么脚本不会显示在头部 - 但是,情况并非如此。
任何帮助搞清楚如何加载这个脚本只在页面上的小部件正在使用时,将不胜感激。
答
使用此功能对于了解你的部件是主动或不
https://codex.wordpress.org/Function_Reference/is_active_widget
[检查WordPress的维基](https://codex.wordpress.org/Function_Reference/is_active_widget)'is_active_widget($回调,$ WIDGET_ID, $ id_base,$ skip_inactive);''是我用过并为我工作的 – theblackgigant