wordpress - 未捕获的错误:调用成员函数 get_slider_language()
问题描述
我正在尝试将我的 wordpress 网站迁移到 Google Cloud,我已经使用 revslider 成功迁移了两个 - 第三个数据库臃肿,我需要修剪一些脂肪才能将其放入。
尝试从任何前端页面查看幻灯片时,我现在收到以下错误。
Fatal error: Uncaught Error: Call to a member function get_slider_language() on null in /var/www/rr/wp-content/plugins/revslider/includes/output.class.php:675 Stack trace: #0 /var/www/rr/wp-content/plugins/revslider/includes/output.class.php(634): RevSliderOutput->add_slider_base() #1 /var/www/rr/wp-content/plugins/revslider/revslider.php(96): RevSliderOutput->add_slider_to_stage('new_home', '', '', '', '') #2 /var/www/rr/wp-includes/shortcodes.php(343): rev_slider_shortcode(Array, '', 'rev_slider') #3 [internal function]: do_shortcode_tag(Array) #4 /var/www/rr/wp-includes/shortcodes.php(218): preg_replace_callback('/\\[(\\[?)(rev_sl...', 'do_shortcode_ta...', '[rev_slider sli...') #5 /var/www/rr/wp-content/plugins/js_composer/include/helpers/helpers.php(240): do_shortcode('[rev_slider sli...') #6 /var/www/rr/wp-content/plugins/js_composer/include/templates/shortcodes/vc_column.php(94): wpb_js_remove_wpautop('[rev_slider sli...') #7 /var/www/rr/wp-content/plugins/js_composer/include/classes/shortcodes/core/class-wpbakerys in /var/www/rr/wp-content/plugins/revslider/includes/output.class.php on line 675
There has been a critical error on your website.
Learn more about debugging in WordPress.
我尝试了以下步骤无济于事。
- 切换主题。
- 禁用所有插件。
- 删除所有幻灯片并尝试使用新制作的幻灯片。
- 更新了所有插件,包括完全删除 Slider Revolution 并重新安装最新版本。
- 我从虚拟机中删除了一些语言包,试图收回一些空间,并认为可能就是这样 - 但重新安装
apt-get -y install "check-language-support -l en"
似乎没有帮助。 - 更新到 PHP 7.4.8
我正在使用具有 OpenLiteSpeed 和 MySQL+Redis 的 Google Cloud VM。我将在 Slider Revolution Global Config 中看到的唯一相关选项从default
用作语言更改为en
. 幻灯片在管理面板中的预览模式下按预期工作。
解决方案
这是由 Revolution Slider 插件中的一个错误引起的,至少从 v6.2.21 开始(并且从那以后它似乎没有得到修复)。在revslider/includes/output.class.php:678
它调用
$lang = $rs_wmpl->get_slider_language($this->slider);
但如果未安装 WPML 插件,$rs_wmpl
则为空。
在他们修复它之前,您可以破解插件以检查 null,例如,
//set slider language
if($this->get_preview_mode() == false && !empty($rs_wmpl)){
$lang = $rs_wmpl->get_slider_language($this->slider);
$this->change_language($lang);
}
编辑:此错误不会在普通页面加载下重现,但在 WP-CLI 下加载站点时会重现,例如通过wp profile
. 怀疑它与在这种情况下处理全局变量的方式有关。
推荐阅读
- c++ - 自定义 istream 运算符始终返回 false
- swift - Struct 是可编码的,这意味着它的所有属性都是可编码的?
- python - Python 2 vs 3 原始字节输出
- c++ - 重新初始化分配有 new 的 pod 类
- python - 在python中创建ROC曲线,但是发现混淆矩阵可能无法正确生成
- git - Git 错误地拉上了一个 dev 分支并得到“这个分支提前 2 次提交,在 master 后面 13 次提交。”
- python - 使用正则表达式选择字符序列中的模式
- javascript - 在 React 中,为什么我们在箭头函数中调用它?
- c# - 无法弄清楚如何存储来自 API 调用的数据
- powerbi - 带有两个过滤器并忽略负值的 DAX SUM