我目前正在为Wordpress开发插件。最近,当我尝试在本地安装中打开网站页面时,我开始遇到一些问题。每当我尝试在新的Chrome隐身窗口中打开它时,都会出现500错误。从正常的Chrome模式删除Cookie也会触发此问题。
Apache日志显示我已用尽最大内存限制。将限制设置为-1会导致无限的内存负载,因此我必须手动停止apache的执行。然后,我启用了xdebug并打开了调试模式。据我了解,xdebug具有最大的嵌套限制,所以这就是我现在得到的错误。调用堆栈表明存在一个函数调用循环。
这是它的样子:
( ! ) Error: Maximum function nesting level of '256' reached, aborting! in /.../wp-includes/wp-db.php on line 2030
Call Stack
# Time Memory Function Location
1 0.0008 397344 {main}( ) .../index.php:0
2 0.0010 397632 require( '.../wp-blog-header.php' ) .../index.php:17
3 0.0011 397984 require_once( '.../wp-load.php' ) .../wp-blog-header.php:13
4 0.0044 411632 require_once( '.../wp-config.php' ) .../wp-load.php:37
5 0.0046 413160 require_once( '.../wp-settings.php' ) .../wp-config.php:101
6 0.9406 10171032 do_action( ) .../wp-settings.php:375
7 0.9406 10171408 WP_Hook->do_action( ) .../plugin.php:465
8 0.9406 10171408 WP_Hook->apply_filters( ) .../class-wp-hook.php:310
9 0.9474 10227816 Classic_Editor::init_actions( ) .../class-wp-hook.php:286
10 0.9482 10229208 Classic_Editor::get_settings( ) .../classic-editor.php:42
11 0.9482 10229208 get_option( ) .../classic-editor.php:233
12 0.9484 10229528 W3TC\DbCache_Wpdb->get_row( ) .../option.php:100
13 0.9484 10229528 W3TC\DbCache_Wpdb->query( ) .../wp-db.php:2501
14 0.9484 10229528 W3TC\DbCache_WpdbInjection_QueryCaching->query( ) .../DbCache_Wpdb.php:167
15 0.9486 10229616 W3TC\Cache_File->get( ) .../DbCache_WpdbInjection_QueryCaching.php:143
16 0.9486 10229616 W3TC\Cache_File->get_with_old( ) .../Cache_Base.php:96
17 0.9486 10229616 W3TC\Cache_File->_get_with_old_raw( ) .../Cache_File.php:136
18 0.9486 10230048 W3TC\Cache_File->_get_path( ) .../Cache_File.php:154
19 0.9487 10230048 wp_hash( ) .../Cache_File.php:312
20 0.9487 10230048 wp_salt( ) .../pluggable.php:2259
21 0.9487 10230984 get_site_option( ) .../pluggable.php:2223
22 0.9487 10230984 get_network_option( ) .../option.php:1137
23 0.9488 10231024 get_option( ) .../option.php:1272
24 0.9490 10231344 W3TC\DbCache_Wpdb->get_row( ) .../option.php:100
.
.
.
252 0.9577 10249328 W3TC\DbCache_Wpdb->prepare( ) .../option.php:100
253 0.9577 10252168 array_walk ( ) .../wp-db.php:1378
254 0.9577 10252192 W3TC\DbCache_Wpdb->escape_by_ref( ) .../wp-db.php:1378
255 0.9577 10252192 W3TC\DbCache_Wpdb->_real_escape( ) .../wp-db.php:1258
256 0.9577 10252232 W3TC\DbCache_Wpdb->add_placeholder_escape( )
第12至23行重复到第252行。
我尝试将最大嵌套级别设置为5000,但始终达到限制。
此外,由于日志似乎暗示该问题来自W3 TC堵塞,因此我尝试禁用它。问题消失了一段时间,我可以以隐身模式访问该站点,但过了一段时间后又浮出水面。使用W3 TC清理缓存似乎也可以暂时解决问题。
从这一点上来说,我不知道我还能尝试什么。我该如何永久解决此问题?
答案 0 :(得分:2)
问题似乎与W3 TC插件有关。完全删除它可以解决我的问题。