我已经为我的网站开发了一个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()?
我只是不明白为什么我需要从插件中加载这些内容,但它是针对所有其他插件全局生成的。
最合适的回答,由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小时前:)
似乎他们正在寻找解决方案,并将很快实施:)