从你的评论中我读到
这就是为什么我在寻找一种方式对wordpress说:“嘿,我添加了那些js文件,别担心。”。这就是这个问题的全部目的
我认为这是完全公平的,我问了你的问题,但问题是这种方式不存在,或者更好的方式不存在一种干净、规范的方式。
如何首先,您必须查看7个脚本的所有依赖项,并注意这些依赖项,以便将来使用,为所有7个脚本创建一个单独的组合js文件wp_print_scripts
可能是优先权晚了PHP_INT_MAX
, 在挂钩回调中,检查BuddyPress是否已安装并激活,如果已安装并激活,请将7个脚本排入队列,将7个文件的所有依赖项(即您在第#1点发现的那些文件)用作依赖项WordPress将添加您的单个脚本(包含7个脚本)以及所有需要的依赖项,并且一切正常。
如果第三方BuddyPress插件将使用其中一个BP脚本作为依赖项添加脚本,例如:。
add_action( \'wp_enqueue_scripts\', function() {
wp_enqueue_script( \'thirdparty-bp-script\', $js_url, array( \'bp-jquery-query\' ) );
} );
一切都将正常运行,因为此脚本在
\'wp_enqueue_scripts\'
, 此时,作为依赖项使用的BP脚本已排队,所以WordPress不会再次添加它。
问题此工作流可能有什么问题?我认为工作流本身没有什么问题,但如果您想将此脚本用于共享或出售主题,我真的不鼓励您这样做。
原因是BP脚本可能在插件的不同版本中发生了更改,同时维护了脚本句柄。因此,您需要返回BuddyPress历史记录,逐行查看该脚本,为每个BP版本添加不同版本的组合脚本,并通过检查安装的BP版本将正确的脚本排队。
当然,脚本将来可能会更改,或者可能会添加一些新脚本,因此在每个BP版本上,即使是较小的版本,您也需要检查脚本及其依赖关系,并在需要时添加脚本的新版本。正如您所理解的,这变得很难维护,您可以打赌您的用户会遇到问题。
IMHO这种优化,即使required 在任何性能很重要的WordPress安装中(全部?)应该由站点所有者实施,在您的情况下,由将安装您的主题的人员实施,而不是由主题开发人员实施。
例如,有人可能希望将站点中排队的所有js(而不仅仅是主题中使用的ONCE)结合起来,并使用CDN,这会怎么样?
总之,如果你想为你自己的网站做到这一点,请遵循我的步骤,这应该是可行的,但如果你计划分享/销售你的主题,请保持原样。
如果您愿意,可以在主题文档中添加一个部分,解释如何组合脚本以获得更好的性能,并让用户选择是否这样做。