¿Cómo solucionar el error ob_end_flush()?

12 feb 2017, 07:26:25
Vistas: 22K
Votos: 4

En la parte inferior de mis páginas de WP-admin obtengo esto:

ob_end_flush(): error al enviar el buffer de compresión de salida zlib (1) en C:\Users\anticaking\Desktop\Website\wordpress\wp-includes\functions.php en la línea 3718.

Línea 3718:

function wp_ob_end_flush_all() {
    $levels = ob_get_level();
    for ($i=0; $i<$levels; $i++)
        ob_end_flush();
}

He eliminado todos los plugins y cambiado temas y aún sigo obteniendo el error, por lo que no puedo identificar qué lo está causando. ¿Qué es esto y cómo lo puedo solucionar?

3
Comentarios

Posible duplicado de error ob_end_flush al usar wpdb en un plugin

prosti prosti
12 feb 2017 12:29:00

¿Cuál es tu versión de PHP?

prosti prosti
12 feb 2017 12:29:23

@prosti versión 7.0.9

lurning too koad lurning too koad
12 feb 2017 18:53:49
Todas las respuestas a la pregunta 4
0

También tuve este problema con WordPress y no pude resolverlo adecuadamente. Terminé usando este truco sucio para evitar que se muestre el error:

// Obtener el nivel actual de reporte de errores
$e_level = error_reporting();

// Desactivar el reporte de errores
error_reporting(0);

ob_start();
echo 'Este es un truco horrible';
$buffer_contents = ob_get_clean();
ob_end_flush();

// Restablecer el nivel de reporte de errores al anterior
error_reporting($e_level);

Todo parece funcionar como se espera, ¡sin embargo no estoy orgulloso de ello!

11 oct 2018 16:34:42
0

bool ob_end_flush ( void ) Esta función enviará el contenido del búfer de salida superior (si existe) y desactivará este búfer de salida. Si deseas procesar más adelante el contenido del búfer, debes llamar a ob_get_contents() antes de ob_end_flush(), ya que el contenido del búfer se descarta después de llamar a ob_end_flush().

Para más información: http://php.net/manual/en/function.ob-end-flush.php

Prueba esto, agrega esto al archivo functions.php. remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );

30 dic 2017 12:36:19
2

No recomendaría deshabilitar completamente la función wp_ob_end_flush_all(), hay una buena razón por la que está ahí. En su lugar, intenta reemplazarla con lo siguiente:

/**
 * ob_end_flush() adecuado para todos los niveles
 *
 * Esto reemplaza la función de WordPress `wp_ob_end_flush_all()`
 * con una alternativa que no genera avisos de PHP.
 */
remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );
add_action( 'shutdown', function() {
   while ( @ob_end_flush() );
} );

Tengo un artículo con más detalles sobre lo que está ocurriendo y por qué este es el mejor enfoque para solucionarlo: Solución Rápida para el Error ob_end_flush() en WordPress

11 dic 2019 20:58:05
Comentarios

Kevin Leary no funcionó para mí. Estoy usando Wordpress 5.7

francesco bonetti francesco bonetti
9 abr 2021 22:57:27

Es más un error a nivel de servidor, no creo que esté relacionado con la versión de WP. Está relacionado con una biblioteca de compresión PHP llamada zlib.

Kevinleary.net Kevinleary.net
27 ago 2021 17:22:29
0

Probé un enfoque de fuerza bruta que funcionó (no estoy satisfecho con ello, pero espero que esto pueda ayudar a alguien):

En la última línea del archivo functions.php dentro de la carpeta /wp-content/themes/<directorio_del_tema>, agrega la siguiente línea:

ob_get_clean();
13 jun 2021 17:31:22