WordPress出现‘无法在写入上下文使用函数返回值’错误,网站宕机求助
修复WordPress报错:Can't use function return value in write context
别慌,这个报错很好定位,咱们先快速搞定让网站恢复!
错误根源
你代码里的这一行出问题了:
$slider_can_stretch = ! empty( preg_match( '/^(demo|meta:)/', $slider ) );
在PHP 5.5之前的版本中,empty()函数不能直接接收函数的返回值,它只能检测变量。而你这里直接把preg_match()的返回值丢给了empty(),这就触发了这个报错。
快速修复步骤
- 找到这段代码所在的文件(看起来是Vantage主题和MetaSlider相关的功能文件,比如主题的
homepage.php或者自定义元数据处理的文件) - 把那行错误代码替换成下面两种写法的任意一种:
写法一(兼容旧PHP版本)
// 先把匹配结果存到变量里 $slider_match_result = preg_match( '/^(demo|meta:)/', $slider ); // 再判断变量是否非空 $slider_can_stretch = ! empty( $slider_match_result );
写法二(更直观推荐)
因为preg_match()匹配成功返回1,失败返回0,匹配出错返回false,所以可以直接判断是否等于1:
$slider_can_stretch = preg_match( '/^(demo|meta:)/', $slider ) === 1;
- 保存文件后,刷新你的网站,应该就能恢复正常了。
额外建议
如果你的服务器还在使用PHP 5.4及以下版本,建议尽快升级到PHP 5.5+(现在WordPress推荐PHP 7.4以上),这样能避免更多类似的兼容性问题,也提升网站性能和安全性。
内容的提问来源于stack exchange,提问作者aostwinkle
相关产品推荐
相关产品推荐

