PHP 8.1下Tailor Advanced插件null属性读取警告的临时修复咨询
临时修复PHP 8.1下Tailor插件的动态内容加载问题
问题根源
PHP 8.0及以上版本对null值直接访问属性会抛出严格警告,原代码未检查$control->setting是否为null就读取其id属性,触发警告后导致动态内容加载失败。
具体修改方案
打开文件 /home/.sites/64/sitexxxxxx/web/wp-content/plugins/tailor-advanced/includes/helpers-general.php,找到第258行的代码,替换为以下任一版本:
方案1:兼容多PHP版本的空值检查(推荐临时迁移用)
// 先验证$control->setting非空,再访问id属性 if ( isset($control->setting) && $control->setting->id == 'shadow' ) { $shadow_control = $control; break; }
方案2:PHP 8+专属的可选链语法(更简洁)
// 可选链自动处理null情况,仅PHP 8.0+支持 if ( $control->setting?->id == 'shadow' ) { $shadow_control = $control; break; }
注意事项
这只是临时应急修复,仅用于内容迁移阶段。迁移完成后请立即停用已停止维护的Tailor插件,避免后续安全或兼容性风险。
内容的提问来源于stack exchange,提问作者pigsound
相关产品推荐
相关产品推荐

