Wp_enQueue_SCRIPT()句柄的用途是什么?

时间:2018-02-05 作者:WPDavid

我不敢问这个问题,因为它可能太基本了。然而,在深入阅读了《法典》和其他主题后,我开始相信,这可能不是那么基本,因为我找不到我的问题的答案。

我的问题是,在wp\\u enqueue\\u script()和wp\\u enqueue\\u style()等函数中,句柄的作用是什么?codex解释说,它是脚本或样式表的名称,尽管很明显,它不需要是保存脚本或样式的文件的名称。我假设它必须是唯一的,并且可以通过

global $wp_scripts;
句柄是显式定义的这一事实表明,它必须有明确的用途或以某种方式可重用。否则,我们只需要加载脚本或样式表,它就可以工作,而不需要句柄。如果能对此有任何见解,我将不胜感激。

2 个回复
最合适的回答,由SO网友:David Sword 整理而成

下面是jquery 手柄的使用方式多种多样:

// add my js, written in jQuery
// so it requires `jquery.min.js` to be output first
// & say I do this in a early hook like `init`
wp_enqueue_script( \'my-js\', \'js.js\', array(\'jquery\'));

// later in theme:

// remove Wordpress\'s default jquery,
// change jquery to a specified version, and put in footer
// & say I do this in a later hook like `wp_loaded`
wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js\', false, \'1.8.1\', true );
wp_enqueue_script( \'jquery\' );
即使我已经my-js 首先,我可以更改和修改jquery

我可以很容易地改变jquery 我正在使用的版本和源代码

我有一个简单明了的伪代码方法remove a script 我不想要的

我变了jquery\'s脚本,但其他插件jquery 仍将获得jQuery(虽然版本可能已关闭,但目前并不重要)

我的my-js 已提前完成,默认为wp_head. 后来,我改变了jquery 要放置到页脚(导入以获得speed PreFace(回复:Google PageSpeed))。自从my-js 取决于jquery, 它也会下移到页脚

当您与多个插件和主题作者打交道时,他们想要更改和修改一些东西,如jQuery,而不知道动态URL或其他主题/插件是否触及了jquery 脚本——在没有句柄的情况下做这样的事情绝对是一场噩梦。

SO网友:Stefano

我还对wp\\u enqueue\\u style()中句柄的功能感到困惑,之前的答案是overcomplex。据我所知,句柄是您为脚本提供的名称或标识符,以便能够调用或引用它。

description 关于wp\\u enqueue\\u style(),我们可以读到:;如果提供了$src(不覆盖),则注册脚本,并将其排入队列"E;

但我们之前也可以在wp_register_script(), 其中;使用wp\\u enqueue\\u script()函数注册稍后要排队的脚本"E;。同样出于这个原因,在wp\\u enqueue\\u style()中,第二个参数“src”是可选的。

如果我们有一种风格。css文件在我们的主题文件夹中,我们必须通过wp\\u register\\u script()或wp\\u enqueue\\u style()注册它,并给它一个(唯一的)名称/标识符,以便能够使用和访问它。

结束