Como solucionar problema de compatibilidad PHP7 con W3 Total Cache

Con la llegada de PHP 7, muchos proveedores de hosting web están ofreciendo la nueva versión de PHP activa por defecto y a veces aun es pronto para la compatibilidad de todos nuestros plugins.

En el caso de W3 Total Cache nos encontramos con que no funciona y es complicado averiguar cual es el problema al depurar el código. Seguro que con el avance de los días iremos viendo actualizaciones de este y otros plugins para tener compatibilidad 100% con PHP 7.

Si estás usando el plugin WordPress W3 Total Cache (W3TC) con PHP 7 podrás ver un mensajes de error similar a este:

Warning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in WP_PATH/wp-includes/functions.php on line 3297

Este error no muestra la realidad del problema, ya que la causa real del problema no está en la línea 3297 del fichero functions.php. Necesitamos ir al directorio de instalación de plugin W3 Total Cache dentro de /wp-content/plugin y buscar el fichero TotalCache.php.

La ruta suele ser, siempre que no la cambies, la siguiente:
WP_PATH\wp-content\plugins\w3-total-cache\lib\W3\Plugin\TotalCache.php

Busca la línea 512:

/**
 * Output buffering callback
 *
 * @param string $buffer
 * @return string
 */
 function ob_callback(&$buffer) {
 global $wpdb;

Tienes que eliminar el ampersand “&” para que el código quede de la forma siguiente:

function ob_callback(&$buffer) {
 global $wpdb;

Ahora solo te queda volver a activar la cache y funcionará todo perfecto. Aquí tienes una muestra de lo que hemos cambiado.

Cambios en W3 total Cache con PHP 7
Cambios en W3 total Cache con PHP 7

Dejar respuesta

Please enter your comment!
Please enter your name here