我们一直注意到在编辑帖子或页面时加载时间非常长。使用查询监视器,我们发现此WP核心查询最多需要15到20秒。
SELECT meta_key
FROM wp_postmeta
GROUP BY meta_key
HAVING meta_key NOT LIKE '\\_%'
ORDER BY meta_key
LIMIT 30
caller:
meta_form()
post_custom_meta_box()
do_meta_boxes()
我们确实使用了很多postmeta,因为我们的一种帖子类型使用了大约20个左右的自定义字段。我想说也许我们过分依赖postmeta,但这似乎是一个非常低效的查询,因为它甚至没有选择帖子的ID。
这是常见问题吗?有没有办法通过过滤器禁用此功能?感谢您的任何投入。
在没有任何插件和默认主题的情况下会发生这种情况吗?
—
比尔吉里(Birgire),2015年
是的,它确实。如上所述,我已经确定慢查询属于WP核心。使用我提供的答案中的功能,自定义字段元框被禁用,这阻止了查询的运行。
—
psorensen
我知道,我刚刚签出了
—
比尔吉里(Birgire)
meta_form()
函数,这确实是从该核心函数生成的SQL查询。您可以尝试添加对代码进行修改的自定义元框,然后在meta_form()
其中使用建议的SQL查询。我发现这张#8561封闭式火车票。您也许可以创建另一张票证或尝试重新打开该票证? PS:请注意,父页面选择元框也是有问题的。如果您有100万页,那么所有页面都会显示为选择选项!
CSS-Tricks上提出的一种解决方案:css-tricks.com/…–
—
psorensen
有趣的解决方案,但看起来它正在替换整个
—
birgire
meta_form()
功能。我更新了答案-核心SQL查询已在WP版本4.3中进行了调整。与我们的附加post_id
限制相比,您认为此新SQL查询的性能有所提高吗?