解决本地XAMPP环境WordPress中wp_cache_get()致命错误
解决WordPress本地XAMPP环境的wp_cache_get()未定义致命错误
问题背景
- 本地XAMPP搭建的WordPress环境,昨日编辑内容后全天运行正常
- 今早启动XAMPP时出现「Error: MySQL shutdown unexpectedly. While Trying to start Mysql on Xampp」提示,删除
/xampp/mysql/data/下以aria_log开头的文件后,XAMPP可正常启动并访问后台,但网站出现以下致命错误:
Fatal error: Uncaught Error: Call to undefined function wp_cache_get() in C:\xampp\htdocs\tilders\wp-includes\option.php:165 Stack trace: #0 C:\xampp\htdocs\tilders\wp-includes\l10n.php(63): get_option('WPLANG') #1 C:\xampp\htdocs\tilders\wp-includes\l10n.php(139): get_locale() #2 C:\xampp\htdocs\tilders\wp-includes\l10n.php(766): determine_locale() #3 C:\xampp\htdocs\tilders\wp-includes\load.php(1395): load_textdomain('default', 'C:\\xampp\\htdocs...') #4 C:\xampp\htdocs\tilders\wp-includes\class-wpdb.php(1198): wp_load_translations_early() #5 C:\xampp\htdocs\tilders\wp-includes\class-wpdb.php(1858): wpdb->select('tilders', Object(mysqli)) #6 C:\xampp\htdocs\tilders\wp-includes\class-wpdb.php(734): wpdb->db_connect() #7 C:\xampp\htdocs\tilders\wp-includes\load.php(562): wpdb->__construct('tilders', 'tilders', 'tilders', 'localhost') #8 C:\xampp\htdocs\tilders\wp-settings.php(124): require_wp_db() #9 C:\xampp\htdocs\tilders\wp-config.php(99): require_once('C:\\xampp\\htdocs...') #10 C:\xampp\htdocs\tilders\wp-load.php(50) in C:\xampp\htdocs\tilders\wp-includes\option.php on line 165 Fatal error: Uncaught Error: Call to a member function set() on null in C:\xampp\htdocs\tilders\wp-includes\l10n.php:784 Stack trace: #0 C:\xampp\htdocs\tilders\wp-includes\l10n.php(872): load_textdomain('default', 'C:\\xampp\\htdocs...', 'de_DE') #1 C:\xampp\htdocs\tilders\wp-includes\class-wp-fatal-error-handler.php(47): load_default_textdomain() #2 [internal function]: WP_Fatal_Error_Handler->handle() #3 {main} thrown in C:\xampp\htdocs\tilders\wp-includes\l10n.php on line 784
已尝试操作
- 重命名所有插件文件夹
- 替换
/wp-admin/、/wp-includes/文件夹及网站根目录下的.php文件 - 将
w3tc-config文件夹重命名为w3tc-config.delete - 重命名除twentytwentytwo外的所有主题文件夹
可行解决思路
1. 临时禁用WP_CACHE配置
打开网站根目录的wp-config.php文件,查找以下代码:
define('WP_CACHE', true);
如果存在,在代码前添加//注释掉,保存后刷新网站。这是因为即使重命名了缓存插件文件夹,wp-config里的缓存启用定义仍会让WordPress尝试调用缓存函数,导致报错。
2. 修复MySQL数据库表损坏
MySQL意外关闭大概率导致数据库表损坏,操作步骤:
- 打开XAMPP控制面板,启动MySQL后点击「Admin」进入phpMyAdmin
- 选择你的WordPress数据库
tilders,勾选所有数据表 - 在下拉菜单中选择「修复表」,等待修复完成后刷新网站
3. 删除缓存插件残留文件
缓存插件会在wp-content目录生成额外文件,即使插件文件夹被重命名,这些文件仍会生效:
- 删除
wp-content/advanced-cache.php文件 - 删除
wp-content/object-cache.php文件(默认WordPress没有这个文件,由缓存插件生成)
4. 验证数据库连接配置
确认wp-config.php中的数据库信息与XAMPP的MySQL配置一致:
define( 'DB_NAME', 'tilders' ); define( 'DB_USER', 'tilders' ); define( 'DB_PASSWORD', 'tilders' ); define( 'DB_HOST', 'localhost' );
若MySQL重启后权限有变动,可能导致连接异常,检查后保存文件并刷新网站。
5. 完整覆盖WordPress核心文件
如果之前替换核心文件不彻底,下载与当前网站版本一致的WordPress压缩包,解压后保留wp-content文件夹,将其他所有文件覆盖到网站目录,确保核心文件完整无缺失。
内容的提问来源于stack exchange,提问作者Ahmet
相关产品推荐
相关产品推荐

