Mittwoch, 7. Februar 2007 Druck-Ansicht
Die Wordpress eigene Cache-Funktion verbessert die Performance deutlich - und der Einsatz ist wirklich empfehlenswert. Aktiviert wird das Caching mit einem Eintrag in der Datei “wp-config.php” - Dort muss folgende Zeile eingesetzt werden:
define('ENABLE_CACHE', true);
Bei Wordpress 2.1 tauchen dadurch jedoch oftmals Schwierigkeiten auf, die Kategorien-Auflistung funktioniert plötzlich nicht mehr. Statt einer Kategorien-Liste liest man Fehlermeldungen wie z.B.
Fatal error: [] operator not supported for strings in /blablabla/wp-includes/classes.php on line 402
… und im Admin-Bereich wird sogar die komplette Beitrags-Verwaltung außer Kraft gesetzt - Man kann sich seine Beiträge nicht mehr anzeigen lassen, weil diese nach Kategorien sortiert aufgelistet werden.
Nach einigen erfolglosen Probierereien bin ich bei WordPress trac fündig geworden: Zu ändern sind im Ordner “wp-includes” die Dateien “cache.php” , “classes.php” und “version.php”
1) Datei “cache.php”
a) Zeile 2 bis 6:
function wp_cache_add($key, $data, $flag = '', $expire = 0) {
global $wp_object_cache;
return $wp_object_cache->add($key, $data, $flag, $expire);
}
ändern in:
function wp_cache_add($key, $data, $flag = '', $expire = 0) {
global $wp_object_cache;
$data = unserialize(serialize($data));
return $wp_object_cache->add($key, $data, $flag, $expire);
}
b) Zeile 36 bis 40:
function wp_cache_replace($key, $data, $flag = '', $expire = 0) {
global $wp_object_cache;
return $wp_object_cache->replace($key, $data, $flag, $expire);
}
ändern in:
function wp_cache_replace($key, $data, $flag = '', $expire = 0) {
global $wp_object_cache;
$data = unserialize(serialize($data));
return $wp_object_cache->replace($key, $data, $flag, $expire);
}
c) Zeile 42 bis 46:
function wp_cache_set($key, $data, $flag = '', $expire = 0) {
global $wp_object_cache;
return $wp_object_cache->set($key, $data, $flag, $expire);
}
ändern in:
function wp_cache_set($key, $data, $flag = '', $expire = 0) {
global $wp_object_cache;
$data = unserialize(serialize($data));
return $wp_object_cache->set($key, $data, $flag, $expire);
}
2) Datei “classes.php”
Zeile 396 bis 402:
function walk($elements, $to_depth) {
$args = array_slice(func_get_args(), 2); $parents = array(); $depth = 1; $previous_element = ''; $output = '';
//padding at the end
$last_element->post_parent = 0;
$last_element->post_id = 0;
$elements[] = $last_element;
ändern in:
function walk($elements, $to_depth) {
$args = array_slice(func_get_args(), 2); $parents = array(); $depth = 1; $previous_element = ''; $output = '';
if( !is_array($elements) )
return false;
//padding at the end
$last_element->post_parent = 0;
$last_element->post_id = 0;
$elements[] = $last_element;
3) Datei “version.php”
Zeile 6:
$wp_db_version = 4772;
ändern in:
$wp_db_version = 4773;
Beim ersten Aufruf des Admin-Bereiches bekommt man eine Meldung, die Datenbank sei nicht mehr aktuell. Also einmal die Datei “wp-admin/upgrade.php” ausführen - und dann sollte alles wie gewünscht funktionieren.
Bitte beachten Sie unbedingt die allgemeinen Hinweise zur Verwendung hier veröffentlichter Code-Beispiele!
Bookmarks, Feed und Links
Wenn Ihnen dieser Beitrag geholfen hat ...
Beiträge zu ähnlichen Themen:
Kommentar schreiben