WordPress-Patch: Veröffentlichung von Beiträgen dauert sehr lange

Manchmal hat auch es auch sein Gutes, daß Owen Winkler die Hoheit über das WordPress-Dashboard erlangt hat. Sein Blog Asymptomatic ist ohnehin lesenswert und nun beschäftigte er sich mit der Problematik, daß WordPress 2.0.1 beim Veröffentlichen von Postings ewig lange, manchmal unendlich lange braucht. Er macht den Ping-Service Pingomatic dafür verwantwortlich, denn dieser RPC-Dienst ist bei den meisten WordPress-Installationen standardmäßig voreingestellt und bei der ständig wachsenden Zahl an WordPress-Usern stark beansprucht. Das zeigt auch die Statistik unter grabperf.org. Pingomatic ist quasi rund um die Uhr voll ausgelastet. Owen begründet damit die lange Wartezeit bis zur Veröffentlichung eines Beitrages und empfiehlt deshalb, einen besser erreichbaren Service zu nutzen. Ein kurzer Test mit einem der genannten Dienste scheint diese Theorie zu bestätigen.

Es ist jedoch auch eine andere Lösung möglich, denn seit dem 13.02. liegt im WordPress Trac ein Patch zur Lösung des Problems vor. Da eine installierbare Version dieses Patches erst mit Milestone 2.1 zu erwarten ist, hier nun eine kurze Anleitung, wie er mit einem manuellen Eingriff durchgeführt werden kann. Vorher bitte in jedem Fall ein Backup der zu modifizierenden Datein anlegen (am besten durch umbenennen auf dem Server).

1. Modifikation der Datei /wp-includes/default-filters.php. Die Zeile Nr. 85

add_action('publish_post', 'generic_ping');

ist ersatzlos zu löschen.

2. Modifikation der Datei /wp-admin/execute-pings.php. In Zeile Nr. 25 ist folgendes einzufügen:

generic_ping();

Das Problem lag also darin, daß die Auslösung des Pings explizit mit der »Publish-Post«-Aktion verbunden war, so daß die Rückkehr zum Admin-Panel erst möglich war, wenn der Ping vorgenommen wurde (default-filters.php). Das Pingen an sich, wurde nun in die separate Datei execute_pings.php ausgelagert, mit der Folge, daß der Ping unabhängig von der Veröffentlichung des Beitrages ist und diese wieder mit »normaler Geschwindigkeit« erfolgt. Für ganz Faule hier die beiden korrigierten Dateien zum Download:

Patch: Publish takes long time (some say forever)
Download: changeset-3524.zip (1.271 Bytes)

Das ganze natürlich ohne jegliche Gewähr auf Funktionstüchtigkeit, in der Praxis funktioniert es bei mir aber zur vollsten Zufriedenheit. (Noch mal: vorher Backup der beiden Dateien anlegen).

Hinweis: Auf Grund eines Kommentares von Owen noch mal zur Klarstellung: Der Ping selbst wird durch die Modifikation im Hintergrund ausgeführt. Dadurch erhält man aber im Zweifelsfall keine Rückmeldung, ob Pingomatic tatsächlich erreicht und der Ping erfolgreich durchgeführt wurde.

Artikel: WordPress-Patch: Veröffentlichung von Beiträgen dauert sehr lange
Datum: Wednesday, 15. February 2006, 11:26 Uhr
Kategorien: WordPress
Feed zum Beitrag: RSS 2.0 · Trackback: Trackback-URL
Diesen Artikel kommentieren.

17 Kommentare

Artikel kommentieren




Formatierung per XHTML oder Textile möglich.