J'essaie de déboguer un plugin et j'utilise error_log()
dans différents endroits pour voir ce que sont différentes choses. J'utilise les éléments suivants:
error_log( print_r( $variable ) );
Lorsque je regarde debug.log
, tout ce que je vois est 1
et la sortie réelle de la fonction error_log()
est plutôt envoyée au navigateur.
Je sais qu'un autre plugin ne le fait pas car tous sont désactivés à l'exception de celui que j'écris et dans mon wp-config.php
, je définis WP_DEBUG_DISPLAY
par false
.
La même chose se produit si j'utilise aussi var_dump()
et var_export()
. D'autres fonctions comme gettype()
et autres fonctionnent très bien.
Un moyen de récupérer la sortie dans debug.log
?
Le print_r function accepte le second paramètre pour return
afin de renvoyer la variable au lieu de l’imprimer.
print_r($expression, $return)
Donc tu peux faire
error_log( print_r( $variable, true ) );
Si votre variable est simplement une chaîne, vous pouvez simplement utiliser error_log ( $variable )
. S'il s'agit d'un objet ou d'un tableau, autre que d'utiliser print_r()
, vous pouvez aussi le sérialiser:
error_log ( serialize ( $variable ) );