web-dev-qa-db-fra.com

La sortie de débogage pendant l'exécution du filtre ne fonctionne pas

Je travaille sur mon premier plugin Wordpress et je travaille sur mon premier type de message personnalisé. Je cherche à fournir une sortie de débogage afin que je puisse voir quel type de données je dois travailler.

J'ai le code suivant (certains coupés pour la taille):

class MyPlugin_Admin {

    ... SNIP ...

    private function __construct() {
        ... SNIP ...
        add_filter( 'wp_insert_post_data', array($this, 'adjust_cpt_data'), 10, 2);
    }

    public function adjust_cpt_data($data, $postarr) {
        var_dump($data);
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        echo "###########################################";
        //d($data);
        //dd($postarr);
        return $data;
    }

    ... SNIP ...

}

J'ai essayé d'utiliser toutes sortes de sorties. Les fonctions d() et dd () proviennent de la barre de débogage et du débogueur Kint. Ils ne travaillent pas non plus. Si j'ajoute du code de débogage juste sous add_filter (), il fonctionne correctement, mais pas à l'intérieur de adjust_cpt_data (). Il n'y a rien que je puisse faire dans cette fonction pour afficher les données à l'écran.

J'ai pu vérifier que ce code est en cours d'exécution, car si je supprime le "return $ data;" ligne, les données de publication personnalisées ne sont pas mises à jour correctement, elles sont simplement actualisées avec les anciennes données.

Demandez à quelqu'un de vous expliquer pourquoi et comment imprimer des sorties de débogage à l'écran.

En passant, je me rends compte que je peux obtenir le contenu de $ data et $ postarr en consultant le WP Codex, mais je reviendrai inévitablement au sujet de ce problème lorsque je devrai déboguer mon propre code.

1
Caesar Kabalan

Vous devez tuer le script. Ajoutez die; après votre var_dump.

Les soumissions post WordPress fonctionnent sur un principe post/redirect/get . La raison pour laquelle vous ne voyez pas le résultat est que la page a été rechargée. En d’autres termes, si vous postez le formulaire, celui-ci est traité et la page est redirigée vers elle-même, mais sans les données $_POST. Cela aide à prévenir les "doubles soumissions".

Vous devez supprimer le script pour empêcher la redirection ou la page que vous voyez n'est pas la page avec le résultat attendu.

Vous devriez pouvoir consigner les erreurs dans un fichier si vous utilisez error_log ou consultez des outils de débogage plus complexes.

2
s_ha_dum