[lang_en]Today was WordPress maintenance Sunday for me. I sorted out all the spam Akismet hadn’t caught and updated a few of the plugins we are using with WordPress. However I hadn’t enough time to update WordPress itself to version 3.0.1. So we are still running 2.9.2. This caused some trouble when I was upgrading the OpenID plugin to its latest version 3.3.3. Accessing the WordPress admin panel I got stuck with an PHP error reading
Call to undefined function get_user_meta()
WordPress codex tells us this function get_user_meta is not available in WordPress until version 3.0. It is replacing the now deprecated function get_usermeta which is available for earlier versions of WordPress. So I came up with a little hack to get the OpenID plugin running again for my ancient 2.9.2 version of WordPress.
Simply add these lines at the top of the plugin files admin_panels.php, server.php and server_ext.php:[/lang_en]
[lang_de]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:[/lang_de]
/**
* 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);
}
}
[lang_en]This code defines a new function get_user_meta in case it is not existing already. The new function calls the deprecated function get_usermeta and returns the result so the plugin is working as expected again.[/lang_en]
[lang_de]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.[/lang_de]
2 Kommentare
Schreibe einen Kommentar →