2012-06-15 17 views
5

Recibí este error fatal cuando actualicé WordPress a Lo nuevo hoy. Yo uso el tema Barely Corporate. La línea 126 es la última línea del código. ¿Alguien tiene una idea de lo que es esto? El tema tiene un diseño receptivo.Error grave: no se puede redeclarar 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

Fatal error: No se puede redeclare wp_is_mobile() (declarado previamente en /home/chilinbk/public_html/kunde/tkh/wp-includes/vars.php:107) en/home/chilinbk/public_html/kunde/tkh/wp-includes/vars.php en la línea 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; 

}

Respuesta

1

No ser capaz de ver el código de su tema, supongo que su functions.php incluye una declaración de la función como esta:

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

Entonces, ¿qué vas a tener que hacer es envolver esa función, así:

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

O eso, o simplemente arrancar el duplicado en el tema y utilizar la versión en 3.4.

Supongo que su proveedor de temas actualizará ese tema, ese tipo de conflicto es desagradable. Esta es la razón por la cual los desarrolladores de temas recomiendan incluir sus funciones con algo único. Prefix everything.

+0

¿Cómo puedo copiar el duplicado en el tema y usar una versión anterior? – andrrs

+0

Debería editar manualmente 'functions.php' y eliminarlo. – artlung

1

podría no ser el tema. en mi caso fue el complemento WPML, pero el ajuste de funciones hizo el trabajo, incluso si la modificación del archivo WP central no es ideal ...

¡gracias por la sugerencia anterior!

1

Tuve el mismo problema una vez que instalé el complemento WPML 2.5.1 en WP 3.4 así que envolví la función y eso eliminó ese error, luego recibí otro error.

Fatal error: Llamada a wp_is_mobile función no definida() en /home/MY_USERNAME/public_html/wp-includes/theme.php en la línea 1606

no sé qué hacer a continuación?

-------- encontró un trabajo en torno ---------

Mientras no RED activar los plugins WPML como Super admin en el WP MultiSite instalar a continuación, No entiendo el error Actívelos de forma independiente.

Sería bueno si la red activada pudiera funcionar. WPML dice que es compatible con múltiples sitios: http://wpml.org/documentation/support/multisite-support/

4

¡Lo tengo!

En wp-content \ plugins \ SitePress-multilingüe CMS-\ sitepress.php, hay las siguientes líneas

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

Estas líneas incluyen el /wp-includes/vars.php archivo en el que la función wp_is_mobile() es declarado. Luego WordPress incluye este archivo vars.php nuevamente y produce un error lógico.

Antes del lanzamiento de WP 3.4 no había ningún problema visible ya que no había funciones en vars.php.Pero ahora hay.

Creo que wpml no necesita incluir este archivo porque ya está incluido en WordPress.

Así una derivación puede ser: Las líneas de comentario 21-24 en "wp-content \ plugins \ SitePress-multilingüe-cms \ sitepress.php"

Esperanza WPML puede arreglar más proprely en la próxima versión del plugin.

+0

Gracias. Se encontró con el mismo problema y esto lo solucionó. – YonoRan

+0

Esto ahora está arreglado con el último complemento v2.5.2 lanzado el 26 de junio. –

Cuestiones relacionadas