我们在网站(WordPress和Woocommerce)错误日志上发生了很多错误,它将显示以下错误消息
试图获取锁时发现WordPress数据库错误死锁;尝试重新启动事务以从wp\\U选项中进行查询删除,其中选项名称(如“\\u transient\\u wpseo\\u sitemap\\u cache\\u shop\\u order\\u%”)或选项名称(如“\\u transient\\u timeout\\u wpseo\\u sitemap\\u cache\\u shop\\u order\\u%”)由require(\'wp-blog header.php\')、require\\u once(\'wp-includes/template loader.php\')、包括(“/主题/themename/template/template name.php”)、WC\\u Abstract\\u order->update\\u status,wp\\u update\\u post、wp\\u insert\\u post、clean\\u post\\u cache、clean\\u object\\u term\\u cache、do\\u action(\'clean\\u object\\u term\\u cache\')、call\\u user\\u func\\u数组、wpseo\\u invalidate\\u sitemap\\u cache\\u terms、wpseo\\u invalidate\\u sitemap\\u cache、wpseo\\u Utils::clear\\u sitemap\\u cache
但我不知道为什么会这样。我创建此模板用于特殊操作,但在该模板中我没有使用get_header()
, get_footer()
等
和_transient_wpseo_sitemap_cache_shop_order_%
是由yoast插件制作的,但我已经不遵循该页面的说明了
有人能说出这是什么原因吗?
另外,当我安装删除过期瞬态插件时,它会显示大量过期瞬态,有人能告诉我如果删除这个过期瞬态会发生什么吗?
为什么瞬态出现在我新创建的页面和模板中,即使我没有使用get_header(), get_footer()
?
如何在所选页面中禁用此未来?
最合适的回答,由SO网友:Pieter Goosen 整理而成
Transient在到期时并不总是被删除,这使得它们无法预测,有时甚至令人痛苦。每当我处理瞬变时,我都会添加一些功能来在发生事情时删除瞬变,比如发布帖子时删除瞬变,或者更新帖子时删除瞬变,如果瞬变是为了保留帖子相关的数据。
删除旧的过期瞬态,即使是新创建的瞬态,也没有坏处。任何必要或必需的瞬态都将在下一页加载时重新创建。由于创建瞬态的成本有点高,如果一次删除并重新创建所有瞬态,可能会降低一页的加载速度。此后,一切应恢复正常
编辑。。。是否有任何选项可以禁用一个页面或选定页面中的所有瞬态
不,没有,那样做就是自杀。默认情况下,大多数设置的瞬态由WordPress完成。WordPress使用这些瞬态来保存昂贵操作的结果。这样,这些昂贵的操作(,这会降低页面加载速度)不需要在每次页面加载时都运行,而只需要每隔几天运行一次,这样可以节省大量资源。
正如我在评论中已经指出的,您可能对插件的瞬态集有问题,在这种情况下,您应该联系插件作者并提供相关的调试信息