Update:
Mein Plugin Anonymous Wordpress Plugin Updates ist nun im offiziellen Plugin-Verzeichnis zu finden und hat einen eigenen Post bekommen.

Zum Hintergrund:
Wie unter anderem der Nachtwächter berichtet hat, gibt es beim neuen Wordpress 2.3 ein Problem mit dem Datenschutz (s.a. bei nichts und Valentin). Die neue Funktion die automatisch nach Updates für Plugins sucht übermittelt einige unnötige Daten an wordpress.org.

Es gibt zwar ein Plugin um die Funktion abzuschalten, aber nachdem sie an sich ja ganz nützlich ist hab ich eine bessere Lösung gesucht.

Und siehe da, der Update-Service funktioniert auch noch wenn man die Blog-Adresse, Wordpress Version und Liste der aktiven Plugins nicht überträgt. Dazu ist es leider nötig die Funktion wp_update_plugins() in der Datei wp-admin/includes/update.php zu bearbeiten, aber die Änderungen sind überschaubar und sollten für jeden, der einen Texteditor bedienen kann, machbar sein. Warnung: Falls die API bei wordpress.org irgendwann mal umgestellt werden sollte kann es aber sein dass die Plugin-Update-Benachrichtigung nicht mehr funktioniert.

Der Rest dieses Beitrags dient zur Beschreibung des Patches, einfacher zu installieren ist mein Plugin Anonymous Wordpress Plugin Updates.

Diese Zeilen verhindern dass von den installierten Plugins mehr als Dateiname, Plugin-Name und Version übertragen werden und leeren die Liste der aktiven Plugins. Die ersten und letzten Zeilen sind unverändert, damit Du weisst wo das Stück einzufügen ist.

	if (
		isset( $current->last_checked ) &&
		43200 > ( time() - $current->last_checked ) &&
		!$plugin_changed
	)
		return false;
	// BIS HIER IST UNVERÄNDERT

	// mod: strip additional infos
	$plugin_files = array_keys($plugins);
	foreach ($plugin_files as $f) {
		$keys = array_keys($plugins[$f]);
		foreach ($keys as $k) {
			if (!in_array($k, array('Name', 'Version'))) {
				unset($plugins[$f][$k]);
			}
		}
	}
	$active = array();
	// end of mod

	// AB HIER IST WIEDER UNVERÄNDERT
	$to_send->plugins = $plugins;
	$to_send->active = $active;
	$send = serialize( $to_send );

Um Deine Blog-Adresse und -Version zu verschleiern musst Du etwas weiter unten noch folgende Zeile

	$http_request .= 'User-Agent: WordPress/' . $wp_version . '; ' . get_bloginfo('url') . "\r\n";

gegen

	$http_request .= 'User-Agent: WordPress/1984; http://privacy.org' . "\r\n";

austauschen.

Das war’s für’s Erste. Vermutlich lässt sich das auch als Plugin realisieren indem man zunächst die originale wp_update_plugins deaktiviert und dann eine modifizierte Kopie davon aktiviert. Anregungen dazu bietet das Plugin Disable Wordpress Plugin Updates. (Siehe dazu auch das Update am Anfang des Artikels)

Nachtrag:
Ich habe inzwischen ein Plugin dafür geschrieben und auf wordpress.org zur Verfügung gestellt. Alles zum Plugin in einem dessen eigenem Post

Weiterer Nachtrag: Das verhindert nicht dass die Blog URL bei anderen Aktionen übertragen wird. Z.B. beim Pingen, bei der Suche nach Core-Updates (also einer neuen WP Version), den Feeds im Tellerrand/Dashboard, den eingehenden Links, Akismet, und und und.