2012-06-15 16 views
5

Mam ten fatalny błąd, gdy zaktualizowałem Wordpress do najnowszego. Używam motywu Barely Corporate. Linia 126 jest ostatnią linią w kodzie. Czy ktoś ma pomysł, co to jest? Motyw ma responsywny wygląd.Błąd krytyczny: nie można redeclare 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

Błąd krytyczny: Nie można redeclare wp_is_mobile() (wcześniej zadeklarowane w /home/chilinbk/public_html/kunde/tkh/wp-includes/vars.php:107) w/home/chilinbk/public_html/kunde/TKH/wp-includes/vars.php on line 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; 

}

Odpowiedz

1

Nie mogąc zobaczyć kod swojego tematu, zgaduję swój functions.php zawiera deklarację funkcji takich jak to:

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

Więc co masz zamiar trzeba zrobić, to owinąć tę funkcję, na przykład:

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

Albo to, albo po prostu wyrwać się z dwóch egzemplarzach w temacie i używać w wersji 3.4.

Zgaduję, że Twój dostawca motywu zaktualizuje ten temat, ten rodzaj konfliktu jest nieprzyjemny. To dlatego twórcy motywów zachęcają do prefiksowania swoich funkcji czymś wyjątkowym. Prefix everything.

+0

Jak wyrwać duplikat w motywie i użyć starszej wersji? – andrrs

+0

Musisz ręcznie edytować 'functions.php' i go usunąć. – artlung

1

To może nie być motyw przewodni. w moim przypadku była wtyczka WPML, ale funkcja zawijania działała nawet jeśli modyfikowanie głównego pliku WP nie jest idealne ...

dzięki za powyższą sugestię!

1

Miałem ten sam problem, gdy zainstalowałem wtyczkę WPML 2.5.1 na WP 3.4, więc zawinąłem funkcję, która pozbyła się tego błędu, a następnie dostałem kolejny błąd.

Fatal error: Zadzwoń do niezdefiniowanej funkcji wp_is_mobile() w /home/MY_USERNAME/public_html/wp-includes/theme.php on line 1606

nie wiem co dalej robić?

-------- znaleźć pracę wokół ---------

Dopóki nie sieci aktywować wtyczek WPML jako super admin WP następnie zainstalować na wielu serwerach Nie widzę błędu. Aktywuj je niezależnie.

Byłoby dobrze, gdyby działało aktywowanie sieci. WPML mówi, że jest kompatybilny z wieloma serwerami: http://wpml.org/documentation/support/multisite-support/

4

Gotowy!

WP zawartości \ wtyczki \ sitepress-wielu językach, cm \ sitepress.php, istnieją następujące linie

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

Te linie zawierają się /wp-includes/vars.php plików, gdzie wp_is_mobile funkcja() jest zadeklarowane. Następnie WordPress włącza ponownie ten plik vars.php i tworzy błąd logiczny.

Przed wydaniem WP 3.4 nie było widocznych problemów, ponieważ nie było żadnych funkcji w pliku vars.php.Ale teraz jest.

Myślę, że wpml nie musi uwzględniać tego pliku, ponieważ jest już dołączany przez WordPress.

Więc boczny może być: Komentarz wiersze 21-24 w "wp-content \ plugins \ sitepress-wielojęzyczna-cms \ sitepress.php"

Nadzieja WPML można naprawić więcej proprely w następnej wersji wtyczki.

+0

Dzięki. Wpadł na ten sam problem i to naprawiło. – YonoRan

+0

Naprawiono to za pomocą ostatniej wtyczki v2.5.2 wydanej 26 czerwca. –

Powiązane problemy