我今天将wordpress更新到最新版时遇到了这个致命的错误 . 我使用Barely Corporate主题 . 第126行是代码中的最后一行 . 有谁知道这是什么?主题确实有响应式设计 .
致命错误:无法重新声明wp_is_mobile()(之前在/home/chilinbk/public_html/kunde/tkh/wp-includes/vars.php:107中声明)/ home / chilinbk / public_html / kunde / tkh / wp-includes / vars第126行的.php
if ( isset($is_mobile) )
return $is_mobile;
if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
$is_mobile = false;
} elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.)
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false ) {
$is_mobile = true;
} else {
$is_mobile = false;
}
return $is_mobile;
}
4 回答
它可能不是主题 . 在我的例子中是WPML插件,但功能包装完成了工作,即使修改核心WP文件不理想...
感谢上面的建议!
得到它了!
在wp-content \ plugins \ sitepress-multilingual-cms \ sitepress.php中,有以下几行
这行包括文件/wp-includes/vars.php,其中声明了函数wp_is_mobile() . 然后WordPress再次包含此vars.php文件并产生逻辑错误 .
在WP 3.4发布之前没有明显的问题,因为vars.php中没有函数 . 但现在有 .
我认为wpml不需要包含这个文件,因为它已经被WordPress包含了 .
所以旁路可以是:在“wp-content \ plugins \ sitepress-multilingual-cms \ sitepress.php”中注释第21-24行
希望WPML可以在下一个插件版本中更加准确地修复它 .
无法看到你主题的代码,我猜你的
functions.php
包含这样的函数声明:所以你需要做的是包装该函数,如下所示:
或者只是删除主题中的副本并使用3.4中的版本 .
我猜你的主题提供者会更新那个主题,那种冲突是令人讨厌的 . 这就是为什么主题开发人员鼓励为他们的功能添加一些独特的东西 . Prefix everything .
一旦我在WP 3.4上安装了WPML插件2.5.1,我遇到了同样的问题,所以我包装了该函数,并且摆脱了该错误,然后又出现了另一个错误 .
致命错误:在第1606行的/home/MY_USERNAME/public_html/wp-includes/theme.php中调用未定义的函数wp_is_mobile()
我不知道下一步该做什么?
--------找到了一个工作---------
只要你没有网络激活WPML插件作为WP多站点安装的超级管理员,那么我不会得到错误 . 独立激活它们 .
如果网络激活可以工作,仍然会很好 . WPML表示它是多站点兼容的:http://wpml.org/documentation/support/multisite-support/