Wenn Pingbacks/Trackbacks mit Custom Post Types nicht mehr funktionieren

… liegt es daran, dass kein do_pings aufgeführt wird! Was? So leicht soll die Lösung sein? Nachdem ich nun neun Stunden mit Debugging verbracht habe und einige Zeilen zusätzlichen Code in vier verschiedenen Dateien gemacht wurden, habe ich die Lösung ganz einfach entdeckt.

Mit diesem Artikel möchte ich euch helfen, Pingbacks und Trackbacks von WordPress zu debuggen und mögliche Fehlerursachen einzugrenzen und zu beheben. 

Ich habe sämtliche Code Schnipsel ausprobiert und ständig hin und her probiert, doch das senden von Pingbacks funktionierte nicht mit custom post types (aber natürlich mit dem Standard post type).

WP-Cron Control

Ist ein sehr nützliches Plugin, um WordPress-hauseigene Cronjobs zu überwachen. Unter der Rubrik Werkzeuge > Controll könnt ihr alle Cronjobs einsehen und wann sie das nächste Mal ausgeführt werden. Solltet ihr hier bereits erkennen, dass bei allen Cronjobs “Next Time Run” auf “now” steht, könnte dies ein Hinweis darauf sein, dass ein Cronjob immer und immer wieder ausgeführt wird, aber nicht zum Ende kommt.

Mögliche Ursachen:

  • PHP Memory Limit zu niedrig
  • PHP Max Execution time zu gering

Das Plugin findet ihr WP-Cron Control.

Pingbacks/Trackbacks debuggen

  1. Als nächstes solltet ihr euch einen neuen Tab aufmachen, in dem ihr einen normalen Beitrag (post_type: post), der eine Pingback Url(Einen Link zu einem anderen Blog) enthält, veröffentlicht/aktualisiert.
  2. Nun wechselt ihr wieder zu eurem Tab mit der Ansicht der Cronjobs und akutalisiert diesen
  3. Schaut die Liste durch, dort müsste nun ein Cronjob mit dem Namen/Hook “do_pings” sein und der Next Run sollte auf “now” stehen

Es erscheint kein “do_ping” in meiner Cronjob Liste

Dies ist der erste Hinweis darauf, dass WordPress euren Artikelinhalt nicht nach externen Links durchschaut. Dieser Fall tritt höchstwahrscheinlich in Verbindung mit custom_post_types auf.

Der Hook “do_ping” erscheint in meiner Cronjob Liste, aber es wird kein Pingback erzeugt

Also gut, es scheint so, als würde WordPress euren Artikelinhalt richtig zu durchsuchen. Nun müssen wir prüfen, an welche Stelle etwas schief geht. Leider macht es WordPress uns nicht ganz leicht, Pingbacks zu debuggen, weshalb wir uns selbst Debug einbauen müssen.

Ich empfehle euch hierzu zwei eigene Blogs zu Hand zu nehmen, um das Ganze testen zu können und dies mit folgendem Szenario:

Blog A veröffentlicht einen Artikel mit einem externen Link zu Blog B.

Auf Blog A müsst ihr die folgenden Dateien bearbeiten (Bitte vergesst nicht, die original Dateien wiederherzustellen, wenn ihr mit dem Debuggen fertig seid):

  • class-wp-xmlrpc-server.php
  • comment.php
  • (optional) wp-cron.php

Dieser Debug Code erzeugt an wichtigen Stellen Nachrichten, welche in einer Datei namens “pingdebug.log” im Hauptverzeichnis eures WordPress-Blogs erstellt. Die Änderungen in der Datei “wp-cron.php” sind optional, aber erleichtert einem das Ausführen vom Hook “do_pings”.

Der Output dieser Logdatei sieht dann wie folgt aus:

Bildschirmfoto 2014-11-05 um 00.57.38
Der Output im Terminal.

Eine kleine Erläuterung zu den Zeilen:

  • post content: Der Inhalt eures Artikels
  • post link temp: Alle Links in eurem Artikel
  • post link array: Alle externen Links in eurem Artikel
  • pingback server: Die Adresse an die der Ping gesendet werden soll
  • paged url: Der Link zum Artikel, in dem sich der externe Link befindet

Liste von geänderten Dateien

Alle geänderten PHP Dateien habe ich in einer Zip-Datei zusammengefasst.

class-wp-xmlrpc.php

Bildschirmfoto 2014-11-05 um 01.04.42
Die Änderungen in dieser Datei sind noch recht überschaulich.

comment.php

In der comment.php bauen wir ein bisschen debug-code ein, der uns ein paar Log-Meldungen in einer separaten Datei erzeugt.
In der comment.php bauen wir ein bisschen debug-code ein, der uns ein paar Log-Meldungen in einer separaten Datei erzeugt.

default-filters.php

In der default-filters.php müssen wir noch eine Action für unseren custom post type hinzufügen.
In der default-filters.php müssen wir noch eine Action für unseren custom post type hinzufügen.

wp-cron.php

Bildschirmfoto 2014-11-05 um 01.05.18

Zusammenfassung
Wenn Pingbacks/Trackbacks mit Custom Post Types nicht mehr funktionieren
Artikeltitel
Wenn Pingbacks/Trackbacks mit Custom Post Types nicht mehr funktionieren
Beschreibung
In diesem Guide möchte ich euch zeigen, wie ihr am besten den Fehler findet, wenn Pingbacks/Trackbacks nicht mehr funktionieren.
Autor

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Pin It on Pinterest

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen