Slow wp_enqueue_media()

时间:2015-06-09 作者:Goodbytes

我已经为我的网站开发了一个WordPress插件,它利用WP媒体上传器来存储文件。。。为此,我的插件包含以下代码:

function enqueue_scripts()
{
  wp_enqueue_script(\'jquery\');
  wp_enqueue_media();
  // etc...
}
add_action(\'admin_enqueue_scripts\', \'enqueue_scripts\');
我注意到管理区域变得非常慢,所以我运行了一些查询日志,似乎查询是由wp\\u enqueue\\u media()触发的;

SELECT ID 
FROM wp_posts 
WHERE post_type = \'attachment\' 
AND post_mime_type LIKE \'audio%\' 
LIMIT 1
在谷歌快速搜索后,我发现这是大型网站上的一个已知问题,之前的许多版本显然都已修复。。。。显然不是!

我不太确定如何继续?我的插件中需要此功能。我有点困惑,为什么这个函数需要调用,而它似乎在整个管理区域都是可用的。。更奇怪的是,当我从我的enqueue\\u scripts()函数加载东西时,它们是全局可用的,我假设这就是wp\\u enqueue\\u media()的情况,因为它会减慢整个管理区域的速度,而不仅仅是插件。

我推测它只会在需要资源时加载资源。

有办法吗?或者,当我使用插件时,有没有办法只触发enqueue_scripts()?

我只是不明白为什么我需要从插件中加载这些内容,但它是针对所有其他插件全局生成的。

1 个回复
最合适的回答,由SO网友:websupporter 整理而成

要仅在页面上加载管理脚本,应使用$hook-参数:

function enqueue_scripts( $hook )
{
  if( \'my-page\' != $hook )
    return;

  wp_enqueue_script(\'jquery\');
  wp_enqueue_media();
  // etc...
}
add_action(\'admin_enqueue_scripts\', \'enqueue_scripts\');
关于装载问题。这似乎仍然是一个悬而未决的问题。这个ticket 27985 随后是#32264, 尚未关闭。上次对此进行编辑是24小时前:)

似乎他们正在寻找解决方案,并将很快实施:)

结束