Dans WordPress, certaines erreurs arrivent par surprise et ne semblent à première vue pas en rapport avec ce que vous avez pu faire. Parfois, cela peut être causé par une extension, d’autres fois c’est uniquement dû aux paramètres de votre hébergement.
Quoiqu’il en soit, même s’il s’agit juste d’une notice d’avertissement et pas d’une erreur qui empêcherait votre site de se charger, vous devriez toujours régler ce genre de problème.
Si vous voyez la notice “Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in” apparaître, il est assez simple de faire disparaître l’avertissement.
Il existe plusieurs solutions qui fonctionnent de manières différentes pour la résolution du problème.
La solution wp-config.php
Allez dans wp-config.php et éditez le fichier pour y ajouter la ligne suivante:
ini_set('zlib.output_compression', '0');
La solution functions.php
Pour cette solution, allez dans les fichiers de votre theme WordPress et ouvrez le fichier functions.php pour l’éditer. Ajoutez la ligne suivante:
remove_action('shutdown', 'wp_ob_end_flush_all', 1);
Une fois que vous aurez terminé et que ces notices d’avertissement n’apparaissent plus, vous devriez tout de même vous assurer que ces notices n’apparaitront pas sur votre site s’il est en production.
Pour cela, ajoutez (ou éditez) les lignes de code suivantes dans le fichier wp-config.php à la racine de votre installation WordPress.
// Désactiver le mode WP_DEBUG
define( 'WP_DEBUG', false );
// Désactiver l'affichage des erreurs et avertissements
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
De cette manière, même si un plugin produit des avertissements, il ne seront pas affichés sur le site, ce qui pourrait poser des problèmes en matière de sécurité. Pour des raisons de debugging, je vous suggèrerais tout de même d’utiliser un site de test.