起因是检查垃圾评论,卡住不动。结论是执行时间太长超时了,可能是超过了PHP的max_execution_time,或者超过了CDN的回源超时时间。
解决方法1:
直接修改ajax请求逻辑,修改/wp-content/plugins/akismet/_inc/akismet.js
找到 akismet_check_for_spam(0, 100);
修改里面的数字为 10,其他地方不用修改,这样就减少了每次ajax请求检查的评论数量。检查垃圾评论逻辑能正常循环了。
解决方法2:
修改php.ini中的max_execution_time
,改为更长的时间如100秒。
如果你使用了CDN,CDN的设置例如回源超时时间也应同步加长。
我的实测是每条评论耗时约0.6秒,所以我在把超时时间改到100秒后,单次处理100条评论也能正常运作了。