【问题标题】:wordpress enqueue a script if it hasn't already been loaded using a function如果尚未使用函数加载脚本,则 wordpress 将其入队
【发布时间】:2015-11-16 11:49:55
【问题描述】:

我创建了一个创建各种小部件的 wordpress 插件。为了缩短页面加载时间,我只想在使用小部件时将关联的脚本排入队列。

为此,我创建了一个这样的函数:

function enqueue_lightbox(){
wp_enqueue_style(
SKIZZAR_SHORTCODES__PLUGIN_SLUG . '-fancybox-css',
'https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css',
array(),
SKIZZAR_SHORTCODES__VERSION
);
wp_enqueue_script( SKIZZAR_SHORTCODES__PLUGIN_SLUG . '-lightbox' );
wp_enqueue_script( SKIZZAR_SHORTCODES__PLUGIN_SLUG . '-lightbox-media' );
}

在我的小部件类中,我这样称呼它:

enqueue_lightbox();

我遇到的问题是我有 2 个小部件共享同一段代码,所以我想创建一个语句,说明如果它尚未在其他地方排队,则将其排队。

我将如何编写这个函数?

【问题讨论】:

  • 入队系统的重点是只加载一次脚本和样式表。只需在需要的地方运行 enqueue 函数,如果它已经运行,则不会再次加载,如果尚未运行,它将对所需的文件进行排队。

标签: php wordpress function


【解决方案1】:

您可以使用 wp_script_is 函数来检查文件并像这样加载它

$handle = 'fluidVids.js';
   $list = 'enqueued';
     if (wp_script_is( $handle, $list )) {
       return;
     } else {
       wp_register_script( 'fluidVids.js', plugin_dir_url(__FILE__).'js/fluidvids.min.js');
       wp_enqueue_script( 'fluidVids.js' );
     }

【讨论】:

    猜你喜欢
    • 2013-10-16
    • 2011-08-09
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多