WordPress 2.3 – Anonym up-to-date bleiben

Heute kommt, so der Terminplan eingehalten wird, die neue WordPressversion 2.3 raus. Neben einigen eher für Plugin-Programmierer interessanten Änderungen der Datenbankstruktur dürfte sich der WordPressnutzer mehr für die neuen Funktionen intessieren. Was es so an Neuerungen gibt, kann man im WP-Deutschland-Blog nachlesen, da wären z.B. Tags nebst Tagwolke, SEO-Verbesserungen und Updatebenachrichtigung.

Letzteres sorgt aber bereits jetzt für Unmut in der WP-Welt, denn diese durchaus sinnvolle Funktion überträgt beim Überprüfen der Versionsinformationen auch Daten, die dafür nicht erforderlich wären, so z.B. die Adresse (URL) des Blogs. Im WP-Forum wird bereits darüber diskutiert und das eine oder ander Blog berichten darüber. Es gibt auch schon Plugins, welche die Updatebenachrichtigungsfunktionen deaktivieren, nur dann werden gar keine Updateinformationen mehr angezeigt.

NEU: Jetzt auch als Plugin.

Ich beschreibe im Folgenden eine Möglichkeit, wie man die Versionsüberprüfung beibehalten kann, ohne aber die eigene Blog-URL an wordpress.org zu übertragen. Dafür kommt mal wieder meine Lieblingskind, die my-hacks.php zum Einsatz. Falls diese Datei im WordPress-Wurzelverzeichnis nicht existiert, legt man sie neu an. Dann kommt der folgende Code dort hinein:

<?php
// Namen der Update- und Check-Funktion
define('PLW_PLG_FUNC', 'wp_update_plugins');
define('PLW_VER_FUNC', 'wp_version_check');

// anonymisiert die URL
function plw123_anon_url() {
 return "http://example.org";
}

// "anonymisiert" aktive Plugins
function plw123_no_active_plugins() {
 return "a:0:{}";
}
// Ersetzt die originale 'wp_version_check'
function plw123_anon_version_check() {
 if( function_exists( PLW_VER_FUNC ) ) {
  add_filter( 'pre_option_home', 'plw123_anon_url', 99999 ); 
  call_user_func( PLW_VER_FUNC );
  remove_filter( 'pre_option_home', 'plw123_anon_url', 99999 ); 
 }
}

// Ersetzt die originale 'wp_update_plugins'
function plw123_anon_update_plugins() {
 if( function_exists( PLW_PLG_FUNC ) ) {
  add_filter( 'pre_option_home', 'plw123_anon_url', 99999 ); 
  add_filter( 'pre_option_active_plugins', 'plw123_no_active_plugins', 99999 ); 
  call_user_func( PLW_PLG_FUNC );
  remove_filter( 'pre_option_active_plugins', 'plw123_no_active_plugins', 99999 ); 
  remove_filter( 'pre_option_home', 'plw123_anon_url', 99999 ); 
 }
}

// Versionschek entfernen und durch eigene Funktion ersetzen
if( function_exists( PLW_VER_FUNC ) ) {
 remove_action( 'init', PLW_VER_FUNC );
 add_action( 'init', 'plw123_anon_version_check' );
}

// Plugin-Update entfernen und durch eigene Funktion ersetzen
function plw123_change_update_plugins () {
 if( function_exists( PLW_PLG_FUNC ) ) {
  remove_action( 'load-plugins.php', PLW_PLG_FUNC );
  add_action( 'load-plugins.php', 'plw123_anon_update_plugins' );
 }
}
add_action( 'admin_menu', 'plw123_change_update_plugins' );
?>

Download: my-hacks.php (als ZIP)

Der Trick besteht darin, das man während der Ausführung der wp_version_check und wp_plugin_updates Funktion ein Filter installiert, welches nicht die URL sondern einen beliebigen anderen Text zurückgibt. Diesen kann man in der Funktion plw123_anon_url festlegen, im Beispiel wird http://example.org zurückgegeben. Danach wird das Filter wieder entfernt. Um den Funktionsaufruf so „einrahmen“ zu können, werden die originalen Funktionen mit remove_action entfernt und statt dessen die eigenen Funktionen mit add_action installiert.

Nachtrag (24.09.2007 15:10): Ich habe nun noch zusätzlich die „Anonymisierung“ der aktiven Plugins eingebaut., das heißt, es wird keine Information mehr übertragen, welche Plugins auch tatsächlich aktiv sind.

Und dann gäbe es noch ein klassisches Henne-Ei-Problem, wenn der Code in einem Plugin verpackt wäre (was natürlich auch möglich ist). Um das Plugin zu aktvieren, muß man im Adminbereich die Pluginseite aufrufen und schwupps werden die Daten ersteinmal an WordPress gesendet. Beim Update von einer älteren Version ist das kein Problem, da kann man das Plugin vor dem Update einspielen und aktivieren. Bei einer Neuinstallation hat man aber so keine Chance. Deshalb ist das in der my-hacks.php besser aufgehoben. Dann muß diese aber auch bei „Einstellungen“ -> „Verschiedenes“ aktiviert werde (vor dem Update):

[x] Die veraltete my-hacks.php-Datei unterstützen.

Bei einer Neuinstallation muß man, wenn man ganz Sicher gehen will, die entsprechende my-hacks.php gleich mit kopieren und unmittelbar nach den WP-Installationsschritten vor dem ersten Aufruf zunächst direkt in der Datenbank die My-Hacks-Option aktvieren. Dazu in der Tabelle wp_options den Datensatz mit dem option_name hack_file suchen und den Wert für option_value zu 1 ändern.

Ein Problem gibt es allerdings. Sollten sich die Funktionsnamen oder der Ablauf der Versionskontrolle in zukünftigen WordPressversionen ändern, dann funktioniert der Hack nicht mehr und muß angepaßt werden.

Stichwörter: , ,

Reaktionen zu “WordPress 2.3 – Anonym up-to-date bleiben” (14)

  1. […] Lösung, wie man wordpress.org gegenüber die eigene URL verschweigt, findet sich bei Schnurpsel. Der Vorteil dieser Lösung ist, das sie keine Eingriffe in den offiziellen Code benötigt. […]

  2. Stürmischer Herbst mit WordPress 2.3?

    Heute soll es ja soweit sein, die neue WordPressversion 2.3 wird veröffentlicht. Es gibt einen ganzen Sack voll neuer Funktionen, da wären z.B. Tags nebst Tagwolke, SEO-Verbesserungen, mehr Datenbanksicherheit und Updatebenachrichtigungen.
    Letzteres …

  3. […] aus der Community. Eine der Lösungen ist die Verwendung der my-hacks.php wie in einem “Schnurpsel” beschrieben wird. Notfalls kann man die Funktion auch ganz mit Hilfe eines Plugins […]

  4. […] Datenschutz. Bei Schnurpsel gibt es eine über my-hacks.php realisierte Variante, um Anonym up to date zu […]

  5. […] will use the following hack to omit my URL. Alternatively, uptodate checking can be completely disabled with this […]

  6. […] hack found at schnurpsel (link in german) that employs the my-hacks.php to hide your blog’s URL. This option keeps the […]

  7. Mein Ansatz ist recht ähnlich, allerdings reduziere ich die Daten die pro Plugin übertragen werden noch auf den Namen und die Version. Dafür muss man bei meiner Lösung noch im Source rumfrickeln. Ich denke eine Plugin-Lösung ist machbar!

    http://f00f.de/blog/2007/09/26...ess-23-schweigsamer-macht.html

  8. So, ich hab jetzt doch schnell ein Plugin geschrieben. Mangels WP 2.3 hab ichs aber noch nicht getestet. Freiwillige vor!

  9. […] Schnurpsel » WordPress 2.3 – Anonym up-to-date bleiben – Ich beschreibe im Folgenden eine Möglichkeit, wie man die Versionsüberprüfung beibehalten kann, ohne aber die eigene Blog-URL an wordpress.org zu übertragen. […]

  10. […] Problem mit dem Datenschutz, aber das sollte durch die my-hacks.php, die freundlicherweise Schnurpsel fertig angepasst zur Verfügung stellt, behoben […]

  11. […] findet sich bei Schnurpsel auch glеiсh eine Lösung für Leute, die mal eben selbst Hand anlegen, aber ich bitte […]

  12. […] veralteten my-hacks.php, wobei die Update-Funktion erhalten bleibt. Weiteres dazu und Download bei Schnurpsel oder etwas anders bei Il […]

  13. Google Pagerank, das Imperium schlägt zurück

    Wer hätte das gedacht. Da wird allerorten über Googles Pagerank-Schlag gegen Linkkäufer, -verkäufer und -händler gezetert, frohlockt oder einfach nur berichtet, und ich profitiere pagerankmäßig von einem Datenschutzskandal. Das war die Sache mit…

  14. Poker Shirt

    Mich würde mal viel mehr Interessieren wie es denn mit der freien Titel gestalltung also mit pics einfügen und so, und dass mal in seiner Textfeld auch die moglichkeit hat die glеiсhen verknüpfungs optionen zu benutzen wie sie im word zu z.b. mind manager funktionieren. Kennt da einer viellеiсht diese Optionen von den ich spreche und sind diese erst gar nicht bei wordpress möglich. würde mich freuen wenn auf meine fragen insplizit eingegangen werden würde. mfg

Einen Kommentar schreiben




 Hier kein Häkchen setzen
 Ich bin kein Spambot

Hinweis: Kommentare von bisher unbekannten Schreibern (Name und eMail) oder mit mehr als einem Link werden moderiert.