WordPress, Cron, Eclipse und Xdebug

Wer Plugins für WordPress entwickelt, erhält mit mit Eclipse PDT eine super Entwicklungsumgebung und mit Xdebug ein mächtiges Tool zur Fehlersuche. Schwierig wird es bei der Suche nach Bugs allerdings, wenn ein Plugin nicht direkt bei der Generierung einer dynamischen WordPress-Seite, sondern über einen WordPress-internen Cron-Job aufgerufen wird. Denn dann greifen die in Eclipse gesetzen Breakpoints erst einmal nicht.Warum das so ist, erklärt Brad Vincent in seinem Blog-Beitrag Master The WordPress Cron. Beim Nachvollziehen seiner Anleitung ist dabei eine Sache zu beachten, die mich bei der Entwicklung bzw. dem Debuggen eines Plugins viele Stunden gekostet hat:

WordPress prüft bei jedem Aufruf einer Seite, ob Cron-Jobs anliegen, und führt diese dann gegebenfalls aus. Meine Denke war daher: Ich rufe einfach irgendeine Seite meines Blogs auf und debugge dabei die entsprechende Routine meines Plugins, die über den WP-internen Cronjob gestartet wird. Doch das funktioniert nicht. Statt dessen muss man den WP-Cron über den direkten Aufruf von http://meinblog.de/wp-cron.php starten. Dann klappt’s auch mit dem Debuggen.

Kurz nochmal alle Schritte zum Debuggen von WordPress-Plugins, die per WordPress-internem Cron aufgerufen werden:

  1. Brads Plugin herunterladen, in WordPress installieren und aktivieren
  2. Prüfen, ob im Plugin-Code der richtige Xdebug-Key gesetzt wird. Bei Eclipse PDT ist das standardmäßig „ECLIPSE_DBGP“. In Brads Plugin steht hier „DEBUGME“.
  3. Den WordPress-internen Cron im eigenen Blog über http://meinblog.de/wp-cron.php aufrufen.

Happy debugging!

Schreibe einen Kommentar