Get Adobe Flash player

WordPress Pings und Trackbacks funktionieren nicht mehr?

Eine Kollegin hatte ein Problem, das die Pings und Trackbacks plötzlich nicht mehr funktionierten. Es halfen keine erweiterten Timeouts in den Scripts.

Also ging ich dran den Cron von WordPress zu debuggen und arbeitete mich systematisch durch den ganzen Code durch. Nach Tagen suchen, war die Lösung einfach.

Ein manueller Aufruf von der wp-cron.php Datei bringt nichts, da der Cron dann schon ausgeführt wurde. Daher musste ich die Cron zwingen erstens Fehler auszugeben und 2tens auch den Cron auszuführen.

Dazu fügt man folgende 2 Zeilen in den Code ein (siehe Kommentar):

if ( !defined('ABSPATH') ) {
	/** Setup WordPress environment */
	require_once('./wp-load.php');
}

/* Error Ausgabe und Cron hinzufügen, damit es ausgeführt wird */
error_reporting(E_ALL ^ E_NOTICE);
wp_schedule_single_event(time(), 'do_pings');

if ( false === $crons = _get_cron_array() )
	die();

Anschliessend kann man per Browser das File direkt aufrufen und schauen, ob der Cron durchläuft. Man sollte nicht erschrecken, wenn die Webseite 1-2 Minuten ladet, ohne etwas anzuzeigen, dann läuft sie.

Falls die Rückmeldung eine leere Seite ist, lief der Cron sauber durch.
Es gibt glaub ich 2 Fehler die hier auftreten könnten. Zum Ersten kann es kommen, wenn der PHP Prozess nicht genug Speicher hat, um die Aktionen auszuführen. Dies ist eines der Hauptprobleme auf Shared Hostings oder virtuellen Servern.

Die Fehlermeldung dazu sieht wie folgt aus:

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 45737284 bytes)

Bei diesem Problem kann man versuchen die PHP Einstellung zu verändern in dem man am Anfang der Datei die Zeile einfügt:

ini_set("memory_limit","150M");

Dies bewirkt, dass die Einstellung im php.ini des Hostinganbieter übersteuert wird und so 150MB zur Verfügung gestellt werden. Der Wert lässt sich natürlich auch anpassen, rechnet einfach die Werte in der Fehlermeldung zusammen und addiert 50 MB. Unbedingt nur M angeben in der Einstellung und nicht MB ;)
Ein Problem wo ihr haben könntet ist, der Anbieter vom Hosting kann die Änderung blockieren und falls dies so ist, seit ihr aufgeschmissen.

Auch kann es passieren, dass das Skript einfach lange läuft und der Provider die Laufzeit eines einzelnen Skriptes eingeschränkt hat.
Die Fehlermeldung wäre dazu:

Fatal error: Maximum execution time exceeded

Dies könnt ihr sehr einfach beheben indem ihr die Ausführzeit auf 5 Minuten setzt mit folgendem Befehl:

set_time_limit(300);

Diese Einstellung zeigt nur Wirkung wenn der Hoster kein Safe Mode verwendet. Falls doch, seit ihr auch hier aufgeschmissen.

Selbstverständlich müsst ihr am Ende noch die Debuggingzeilen aus dem wp-cron.php wieder entfernen.

Unterdessen habe ich auch ein Problem analysiert, wo die Trackbacks auf der eigenen Seite nicht ankommen und dazu eine kleines Hilfetool veröffentlicht. Der Artikel dazu befindet sich hier: WordPress Pings und Trackbacks kommen nicht an?

Weitere interessante Beiträge:

19 Kommentare zu „WordPress Pings und Trackbacks funktionieren nicht mehr?“

  • Supi, das sieht ja auch ziemlich einfach aus und ist auf jeden Fall hilfreich :-)
    Habe meinen Artikel gerade mit einem Update und Link zu Deinem Artikel versehen, so dass die Interessierten das auch bei mir gleich mitbekommen. Dein TB kam übrigens 3x an ;-)

  • Danke für diesen hilfreichen Artikel. Da werde ich meinen alten Blogbeitrag über Timeout diesbezüglich ergänzen.

  • HEhe, habe ja im TExt deine URL, dann noch unten 1 Mal und einmal mit /trackback die URL unten angegeben = 3

    Ich hör wieder auf die Trackback URL’s einzugeben *lach*

  • 32MB reicht fast nicht. Zwar reicht dies um die HP aufzubauen und auszuliefern, aber nicht für die gesamten Hintergrundaktivitäten die noch ablaufen.

    256MB werden ja nicht jederzeit belegt, sondern nur gelegentlich, je nach dem wie stark frequentiert geschrieben wird. 256MB sollte aber auch einem Webserver kein Problem sein.

  • Hatte benfalls dieses Problem bei meinem WordPress-Blog, dein Tip hat aber Abhilfe geschaffen. Danke dir dafür !
    LG Black Knight

  • avatarim Kreuzfeuer:

    trackbacks und pingbacks sind seit je her ein leidiges thema bei wordpress. immer wieder finden sich artikel in der blogosphäre in denen entmutigte blogger ihrem unmut freien lauf lassen. andauernd kommen trackbacks nicht an, verschwinden pingback…

  • Ich bin bei 1&1, nach dem Einbauen des Debug-Codes gab’s bei mir keine Probleme. Wahrscheinlich ist mein Blog zu klein :-)

  • Vermutlich kein Problem bei den wp-cron. Je nach wo der Fehler auftritt muss man einen anderen Code einbauen in den spezifischen Files. Wo hast du denn Probleme?

  • Hallo,

    danke für den Artikel. Was kann es aber sein, wenn mein Blog einen Pingback bekommt, dieser aber von meinem Blog scheinbar ignoriert wird, obwohl ich Pingbacks in meinen Artikeln zulasse?

    Gruß,
    Jochen

  • Kann mehrere Probleme geben. Der Blog wo dich pingt, macht der dies mit der Artikel URL mit oder ohne /trackback/ Zusatz am Ende?

    Teste das mal. Gibt diverse Blogs die Probleme haben, falls der Trackback Zusatz nicht verwendet wird. Wird dies angegeben kommt aber nicht an bei dir innert rund 1-2 Minuten, dann müsste man dies Debuggen und suchen.

    Wichtig ist auch die Frage, ob der Trackback beim anderen Blog wirklich raus geht. Daher von verschiedenen Blogs dir ein Trackback senden lassen zum testen.

  • Hallo Stefan,

    danke für deine Antwort :)

    Mit meinem TestBlog WordPress 3.0.1 , mit dem ich versucht habe, einen Artikel meines realen Fotoblog – auch WordPress 3.0.1 – zu verlinken, habe ich es auf beide Varianten probiert – Pingback (also die URL des realen Artikels nur im Text des TestBlogs erwähnt. Dann aber auch als Trackback in dem dafür vorgesehenen Feld, dann aber die URL mit und ohne trackback/ am Ende. BEIDES kommt im realen Blog nicht an – und ich habe bereits über 20 Versuche gestartet und auch verschiedene Artikel meines realen Blogs angepingt.

    Ich weiß zum Beispiel, dass die Pingbacks meines realen Blogs raus gehen, da ich das an den verlinkten Blogs sehe, da dort dann später mein Eintrag zu finden ist. Mein TestBlog liegt auf dem gleichen Server wie der reale Blog – daher sollte es funktionieren. Des Weiteren habe ich vorsichtshalber mal in meinem Testblog einen intern Pinback gesetzt, der kam an (wobei ich nicht weiß, ob er dafür überhaupt erst mal “raus” gehen muss).

    Noch weitere Ideen?

    Wer mag, kann mich ja mal “pingbacken” http://www.fotokulisse.de/content/archiv/pingbacks-funktionieren-nicht/
    oder “trackbacken” http://www.fotokulisse.de/content/archiv/pingbacks-funktionieren-nicht/trackback/ ;)

  • Nun habe ich noch einen weiteren Test gemacht. Auf einem befreundetetn Blog habe ich einen Artikel geschrieben. Darin per Pingback verlinkt habe ich den TestBlog und meinen realen Blog (beide Blogs liegen auf dem gleichen Webserver). Im TestBlog bekam ich direkt einen Nachricht, das ein “Kommentar” eingegangen ist, auf meinem realen Blog warte ich immer noch (und ich weiß, dass nichts kommen wird – und ja, eingehende Pingbacks und Trackbacks sind auch dort grundsätzlich erlaubt).

    *verzweifel*

  • Jo, da scheint ein Problem vorzuliegen auf dem Realblog. Vermutlich irgendwo der Speicherverbrauch im Backend zu gross.

    Leider ist es nicht möglich den Fehler auf einem Testblog oder auf einem anderen Server zu reproduzieren, da vieles mit einspielt. Konfig des Apache und all deine Beiträge / Kommentare (sprich DB Grösse).

    Einzig was man machen kann ist eine manuelle Suche und debuggen.
    Ich durfte bei Tanja per FTP auf ihr prod. System und alles debuggen, sie brachte das Vertrauen auf. Ich schick dir eine Mail diesbezüglich.

  • Ach noch was, bei eingehenden Trackbacks kann man in der Datei xmlrpc.php die Einstellung $xmlrpc_logging = ’1′; stellen. Dann wird ein logfile geschrieben über die eingehenden Trackbacks und gegebenenfalls sieht man darin warum es nicht geht!

  • Stefan, danke… ich melde mich bei dir!

  • Probleme mit Trackbacks und Pingpacks: Stefans Hilfe war nicht nur rasch und unkompliziert, sondern auch “zielführend”, wie man so schön sagt. Am shared system von 1&1 lag es nicht. Also Permalink-Struktur richtig setzen und auch gleich auf WordPress auf 3.0.1 updaten, da ging alles wunderbar. Ein verzweifelter Laie hat zum Lächeln zurückgefunden – vielen Dank, Stefan!

  • avatarJack:

    Hey Stefan,

    vielen Dank für diesen Tipp! Seit Monaten die ersten Ping- und Trackbacks, die bei mir wieder rausgehen. :)

    Gruß
    Jack

  • [...] hat auf seinem Blog einen Artikel veröffentlicht- WordPress Pings und Trackbacks funktionieren nicht mehr? – in dem er Schritt für Schritt erklärt, wir er diesem Problem auf die Spur gekommen ist [...]

  • [...] dieser Stelle möchte ich noch kurz auf die Beschreibung von Stefan hinweisen, wie man selbst in seinem Blog herausfinden kann, ob das eigene Memory Limit für die Trackbacks [...]

Kommentieren

This Blog will give regular Commentators DoFollow Status. Implemented from IT Blögg

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