web-dev-qa-db-fra.com

Débogage dans Wordpress

Dans Visual Studio, vous pouvez facilement déboguer votre application en exécutant le mode Débogage et en définissant des points d'arrêt dans votre application.

Dans Wordpress, comment réaliseriez-vous la même chose?

J'ai un problème sur mon site Web et il n'y a pas d'erreur ou d'avertissement. J'ai passé assez de temps à peaufiner les réglages pour résoudre ce problème sans chance. La seule solution que j'ai trouvée consiste à définir des points d'arrêt et à déboguer l'application comme dans .NET.

Je sais que si vous activez le mode débogage dans Wordpress, le résultat sera gigantesque dans le haut du site. C'est correct, mais je ne peux pas déboguer efficacement avec cela.

Faites-moi savoir s'il existe une meilleure approche pour le débogage WP sites dans Visual Studio.

6
Jason

Déboguer dans wordpress peut être un peu difficile lorsque vous débutez, bien que je n'utilise pas de points d'arrêt tels que ceux proposés par Visual Studio, je peux vous donner des conseils sur la façon de déboguer php en général, ainsi que d'activer la sortie de débogage à partir de wordpress .

Commencez par ouvrir votre fichier wp-config.php et recherchez la ligne suivante.

define('WP_DEBUG', false);

Par défaut, il est défini sur false, définissez le deuxième paramètre sur true. Ceci activera les avis, avertissements et erreurs php dans votre navigateur.

Un aperçu rapide du Wordpress Codex montre que vous pouvez activer la messagerie d'erreur relative à la base de données avec un aperçu rapide:

<?php $wpdb->show_errors(); ?> 
<?php $wpdb->print_error(); ?> 

Cela vous permettra d’afficher la dernière requête SQL envoyée et toute erreur détectée par MySql.

Ensuite, en général, lorsque j'essaie de comprendre ce qui ne va pas avec les variables ou les structures de données, je trouve que cela est toujours utile:

<pre>
 <?php print_r($arrayOrObject);
</pre>

En utilisant les balises pre, vous obtiendrez une sortie brute sans préformatage HTML, ce qui affinera votre vision des tableaux et des objets associatifs. Les fonctions var_dump () sont également utiles à cet égard.

Lorsque vous essayez de déboguer quelque chose comme une publication, une requête ajax et que vous voulez vous y plonger, faites simplement écho aux variables que vous essayez de déboguer et émettez immédiatement une commande die (), par exemple:

echo '<pre>';
echo var_dump($arrayOrObject);
echo '</pre>';
die();

Pour les environnements de développement, je préfère utiliser quelque chose qui ressemble à une pile WAMP (MAMP pour mac osx comme si de rien n'était.)

Il est certainement utile d'exécuter une copie locale de votre instance wordpress sur votre propre machine, ce qui vous permet d'essayer les techniques ci-dessus, si nécessaire. Les conseils de dépannage mentionnés ci-dessus m'ont permis de traverser les 5 dernières années de programmation php et wordpress. Espérant que ceci puisse t'être utile!

7
Ryan Fletcher

WordPress est livré avec son propre système de débogage qui utilise des constantes, ce qui facilite l'activation/la désactivation lorsque vous changez d'environnement. Toutes les constantes sont définies dans le fichier wp-config.php.

define( 'WP_DEBUG', true )

Si vous définissez WP_DEBUG sur true, toutes les PHP erreurs, avertissements et remarques s'affichent à l'écran. En outre, il affichera des avis sur les fonctions et les arguments obsolètes.

define( 'WP_DEBUG_LOG', true )

Activer WP_DEBUG_LOG enregistre toutes les erreurs dans un fichier (debug.log situé dans/wp-content /). C'est utile lors du débogage des événements AJAX.

define( 'WP_DEBUG_DISPLAY', true )

En complément des deux constantes précédentes, WP_DEBUG_DISPLAY peut être utilisé pour contrôler si nous voulons ou non imprimer les erreurs sur la page.

define( 'SAVEQUERIES', true )

LorsqueSAVEQUERIESest défini sur true, chaque requête exécutée est sauvegardée. Il existe également des informations sur le temps d'exécution d'une requête et sur la fonction qui l'a appelée. Toutes les informations sont stockées dans $wpdb->queries.

Il existe également un SCRIPT_DEBUG constant define( 'SCRIPT_DEBUG', true) qui oblige WordPress à utiliser les versions de développement des fichiers CSS et JS de base, au lieu des versions modifiées.


En utilisant Visual Studio (vous aurez besoin de PHP Tools)/PHPStorm/Eclipse, vous pourrez effectuer le débogage avec Xdebug. Si vous utilisez XAMPP/MAMP, Xdebug est déjà installé sur votre ordinateur. Il vous suffira donc de le configurer.

Localisez php.ini et ajoutez ces deux lignes:

zend_extension="/absolute/path/to/xdebug.so"
xdebug.remote_enable = 1

Il existe d’autres options que vous pouvez configurer et que vous pouvez lire à leur sujet dans xdebug documentation . Une fois la modification du fichier php.ini terminée, redémarrez votre serveur Apache.

L'étape suivante consiste à définir les paramètres du débogueur PHP dans votre éditeur. Accédez à la boîte de dialogue Paramètres/Préférences et recherchez les paramètres PHP. Une fois que vous avez terminé, vous pouvez commencer à définir des points d'arrêt.

6
Boris Kuzmanov