Heute war bei mir Wartungssonntag für WordPress. Ich habe all die Spam-Kommentare entfernt, die Akismet nicht aussortiert hatte und ein paar der Plugins, die wir in WordPress einsetzen, aktualisiert. Leider hatte ich nicht genug Zeit, um auch die WordPress-Installation selbst auf Version 3.0.1 zu aktualisieren, weshalb hier noch immer 2.9.2 läuft. Das war auch die Ursache für ein Problem, das beim Update des OpenID-Plugins auf die Version 3.3.3 auftrat. Der Zugriff auf das WordPress Admin Panel wurde mit folgendem PHP-Fehler quittiert:
Call to undefined function get_user_meta()
WordPress Codex verrät einem dazu, dass die Funktion get_user_meta erst mit WordPress-Version 3.0 eingeführt wurde. Sie löste die veraltete Funktion get_usermeta ab, die in früheren WordPress-Versionen verfügbar war. Daher habe ich einen kleinen Hack ausgeheckt (haha!), um das OpenID-Plugin auch mit meiner antiken 2.9.2-Version von WordPress ans Laufen zu bekommen.
Dazu müssen die folgenden Zeilen oben in die Plugin-Dateien admin_panels.php, server.php und server_ext.php eingefügt werden:
/**
* Hotfix for WordPress 2.x
*/
if ( !function_exists('get_user_meta') ) {
function get_user_meta($user_id, $key, $single = false) {
if ( $single == false )
return array(get_usermeta($user_id, $key));
else
return get_usermeta($user_id, $key);
}
}
Dieser Code definiert eine neue Funktion get_user_meta für den Fall, dass nicht bereits eine solche existiert. Diese neue Funktion ruft dann die veraltete Funktion get_usermeta auf und liefert das Ergebnis des Funktionsaufrufs zurück, sodass das Plugin wieder wie erwartet funktioniert.


english
deutsch