toscho.design

WordPress: Pingback-Header entfernen

Ich habe hier Pingbacks und Trackbacks abgeschaltet (unter »Einstellungen/Diskussion«).
Diese Rückmeldungen schlagen in den unterschiedlichsten Zeichenkodierungen ein und müssen umständlich auf UTF-8 normalisiert werden, sie enthalten oft Spam, und als Leser in anderen Blogs stören sie mich nur.

HTTP-Requests auf /xmlrpc.php leite ich schon lange nach localhost um.

RewriteCond %{THE_REQUEST} xmlrpc\.php [NC]
RewriteRule ^.* http://localhost [L,R=301]

WordPress aber sendet fröhlich bei jedem Zugriff den Header (Bug 9092):

X-Pingback: http://toscho.de/xmlrpc.php

Das hat jemand in der Funktion send_headers() in wp-includes/classes.php festgeschraubt. Danke.

Macht nix: Wenig später wird ein Filter angeboten. In der functions.php unseres Themes schrauben wir den Ballast also wieder ab:

// Pingback
add_filter('wp_headers', 
    create_function('$h','unset($h["X-Pingback"]);return $h;')
);

Das spart 39 Bytes pro Request und – wichtiger – suggeriert niemandem, Pingbacks und Trackbacks seien doch erwünscht.

Natürlich hat mein Verfahren auch einen Nachteil: Man kann Ping- und Trackbacks jetzt nicht mehr für einzelne Artikel anschalten (siehe Bug 7324). Wer das möchte, sollte die Funktion nicht verwenden – oder sie erst prüfen lassen, ob für den gerade aufgerufenen Artikel so eine Ausnahme gilt.

Leser, die diesen Hack blöd finden, ärgern sich hoffentlich auch hierüber: Aktualisierungsrate der Newsfeeds anpassen (bueltge.de).

6 Kommentare

  1. Michael am 02.01.2010 · 11:44

    Ich verstehe ehrlich gesagt nicht, warum Du das machst.

    Trackbacks sind doch sehr nützlich, auch für die Leser, wenn man sehen möchte, wer sich über das entsprechende Thema noch geäußert hat.

    Und es ist ein kleiner Dank zurück für die Verlinkung des Beitrags.

    Gruß Michael

  2. Thomas Scholz am 02.01.2010 · 11:52

    Üblicherweise bekommt man leider nur Satzfetzen, die niemandem einen richtigen Nutzen bringen. Dafür steigt der Aufwand bei der Kommentarmoderation, und ich muß mich um valides UTF-8 kümmern (das schafft WordPress von Haus aus nicht zuverlässig).

    Ich setze mich irgendwann mal hin und schreibe eine brauchbare Umsetzung. Bis dahin bleibt das draußen.

  3. Francesco am 25.02.2010 · 21:39

    Wo kann ich denn kontrollieren oder sehen, ob WordPress bei jedem Zugriff den Header

    X-Pingback: http://example.com/xmlrpc.php

    sendet?

    [URL geändert, toscho]

  4. Francesco am 25.02.2010 · 21:41

    Ehm, natürlich nicht genau den Header mit toscho.de … sorry.

  5. Thomas Scholz am 26.02.2010 · 04:41

    @Francesco: HTTP-Header kannst du normalerweise im Browser ansehen: In Opera Dragonfly und in Firefox’ Firebug jeweils im Reiter Netzwerk, in Safari unter Webinformationen/Ressourcen.
    Außerdem kannst du online beim Websniffer nachgucken.

  6. quaddy am 18.05.2011 · 11:13

    Danke für das kleine HowTo. Sehr nützlich bei mir, da ich meien WP Installation als CMS ohne Blog verwende.