2012-06-15 70 views
5

當我今天將wordpress更新爲最新版時,我收到了這個致命錯誤。我使用Barely Corporate主題。 第126行是代碼中的最後一行。有沒有人有一個想法這是什麼?主題確實具有自適應設計。致命錯誤:無法重新聲明wp_is_mobile()

http://themeforest.net/item/barely-corporate-responsive-wordpress-theme/93069?WT.ac=search_item&WT.seg_1=search_item&WT.z_author=ThemeBlvd

致命錯誤:不能重新聲明中wp_is_mobile()(以前在/home/chilinbk/public_html/kunde/tkh/wp-includes/vars.php:107申報)/家庭/ chilinbk /的public_html /昆德/ TKH/WP-包括在線/ vars.php 126

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; 

}

回答

1

不能夠看到你的主題的代碼,我猜你的functions.php包括函數的聲明是這樣的:

function wp_is_mobile() { 
    // ... the code 
} 

所以,你接下來要做的事情需要做的是換行功能,像這樣:

if (function_exists('wp_is_mobile')) { 
    function wp_is_mobile() { 
     // ... the code 
    } 
} 

要麼或者只是撕裂了主題中的重複和3.4使用的版本。

我想你的主題提供者會更新那個主題,那種衝突是討厭的。這就是爲什麼主題開發人員鼓勵在他們的函數前加一些獨特的東西。 Prefix everything

+0

如何拆分主題中的副本並使用較舊的版本? – andrrs

+0

您需要手動編輯'functions.php'並將其刪除。 – artlung

1

它可能不是主題。在我的情況下是WPML插件,但功能包裝做了這項工作,即使修改核心WP文件是不理想的...

感謝上面的建議,但!

1

當我在WP 3.4上安裝WPML插件2.5.1後,我遇到了同樣的問題,所以我封裝了這個函數,並且擺脫了那個錯誤,然後我又發生了一個錯誤。

致命錯誤:在/home/MY_USERNAME/public_html/wp-includes/theme.php調用未定義功能wp_is_mobile()上線1606

我不知道下一步該怎麼做?

--------發現周圍的工作---------

只要你不激活網絡的WP多站點安裝,則WPML插件,超級管理員我沒有得到錯誤。獨立激活它們。

如果網絡激活可以正常工作,仍然會很好。 WPML說它是多站點兼容的:http://wpml.org/documentation/support/multisite-support/

4

Got it!

在可溼性粉劑內容\插件\ sitepress-多種語言-CMS \ sitepress.php,存在以下行

if (function_exists('is_multisite') && is_multisite()) { 
    include_once(ABSPATH . WPINC . '/vars.php'); 
} 

此線包括文件/wp-includes/vars.php其中函數wp_is_mobile ()被聲明。 然後WordPress再次包含這個vars.php文件併產生一個邏輯錯誤。

在WP 3.4發佈之前,沒有可見的問題,因爲vars.php沒有功能。但現在有了。

我想wpml不需要包含這個文件,因爲它已經包含在WordPress中。

所以旁路可以是:註釋行21-24在 「的wp-content \插件\ sitepress,多語種-CMS \ sitepress.php」

希望WPML能夠在明年的插件版本的詳細proprely修復它。

+0

謝謝。進入相同的問題,這解決了它。 – YonoRan

+0

現在已經在6月26日發佈的最新插件v2.5.2中修復了。 –

相關問題