Sonntag, 4. Februar 2007 Druck-Ansicht
Geschafft: Seit heute läuft gunnart.de mit Wordpress 2.1 - Sollte irgendetwas vorübergehend nicht richtig funktionieren, bitte ich um Nachsicht, da einige Eigenbau-Funktionen im Theme noch nicht optimal an Wordpress 2.1 angepasst sind.
Das Upgrade war diesmal mit etwas mehr Gefriemel als gewohnt verbunden. Nachdem ich bei den ersten Versuchen zunächst mit Fehlermeldungen regelrecht zugeschmissen worden bin - immerhin lief gunnart.de vorher noch mit Version 1.52 - bin ich den Umweg gegangen, Wordpress 2.1 zunächst auf einer Subdomain zu installieren - und die 1.52er-Datenbank vorm Ausführen des Upgrade-Skriptes manuell “vorzubereiten”.
Auf der alten Seite hieß der Admin nicht mehr “admin”, das hatte ich direkt in der Datenbank geändert. Solche Spielereien sollte man vorm Upgrade rückgängig machen.
Ebenso hat man es einfacher, wenn das Tabellen-Präfix bei der neuen Installation dasselbe wie bei der alten Installation bleibt - Bei meinem ersten Versuch “durfte” ich zwar in den Admin-Bereich, konnte jedoch weder Voreinstellungen noch Beiträge oder Seiten bearbeiten.
Und diesen Umstand finde ich ärgerlich - bei anderen CMS braucht man beim Seiten-Portieren nur ein paar Config-Dateien anzupassen - bei Wordpress muss man in der Datenbank rumsuchen, bis man alles gefunden hat.
Letztendlich geklappt hat das Update erst, nachdem ich alle Einträge in der Tabelle “meinpraefix_options” auf die Subdomain angepasst hatte. Bevor man sich alle “option_values” durchklickt nimmt man dazu am Besten eine MySQL-Abfrage. Bei mir sah die folgendermaßen aus:
UPDATE gunnart_options SET option_value = replace(option_value, 'www.gunnart.de', 'wordpress21.gunnart.de');
… und dann erst gab’s beim Ausführen der “upgrade.php” keine Fehlermeldungen mehr. Damit lag die alte Seite wie gehabt auf http://www.gunnart.de, eine mehr oder weniger funktionstüchtige neue Seite auf http://wordpress21.gunnart.de … Dann einloggen, mit dem neuen “Privatsphäre”-Menü verhindern, dass die Test-Aktionen bei Google oder irgendwelchen Ping-Services auftauchen - und so kann man in Ruhe an seinem Theme arbeiten und seine liebgewonnenen PlugIns nach und nach installieren.
Zu 1) Cache ausschalten
In der Datei “wp-config.php” die Zeile
define('ENABLE_CACHE', true);
löschen oder auskommentieren - sofern vorhanden.
Leider hab ich das Cache-System auch mit viel Liebe nicht zum Laufen überreden können, aber vielleicht finde ich ja doch noch einen Weg …? Für Hinweise und entsprechende Kommentare bin ich auf jeden Fall dankbar.
Zu 2) Permalink-Redirect bearbeiten
Die Funktion execute(); darf nur dann ausgeführt werden, wenn in den Wordpress-Optionen festgelegt wurde, dass eine Statische Seite als Startseite fungieren soll und wenn man sich gleichzeitig auf dieser Startseite befindet.
In der Version 0.6.1 von Permalink-Redirect dreht es sich um die Zeilen 52 bis 91:
function execute() {
global $withcomments;
$requested = @parse_url($_SERVER['REQUEST_URI']);
if ($requested === false)
return;
$requested = $requested['path'];
if (is_404() || is_trackback() || is_search() ||
is_comments_popup() || YLSY_PermalinkRedirect::is_skip($requested))
return;
// Check whether we need to do redirect for FeedBurner.
// NOTE this might not always get executed. For feeds,
// WP::send_headers() might send back a 304 before template_redirect
// action can be called.
if (is_feed() && !is_archive() && !$withcomments) {
$feedburner = get_settings('permalink_redirect_feedburner');
if ($feedburner && !YLSY_PermalinkRedirect::is_feedburner()) {
header('HTTP/1.1 302 Found');
header('Status: 302 Found');
header("Location: http://feeds.feedburner.com/$feedburner");
exit(0);
} else {
return;
}
}
$link = YLSY_PermalinkRedirect::guess_permalink();
if (!$link)
return;
$permalink = @parse_url($link);
if ($requested != $permalink['path']) {
header('HTTP/1.1 301 Moved Permanently');
header('Status: 301 Moved Permanently');
header("Location: $link");
exit(0);
}
}
Dort muss eine Abfrage “drumherum” geschachtelt werden:
if ( (get_option('show_on_front')=='page') && !is_page(get_option('page_on_front')) ) {
//... execute ...
}
Die geänderte Funktion sieht folgendermaßen aus:
function execute() {
if ( (get_option('show_on_front')=='page') && !is_page(get_option('page_on_front')) ) {
global $withcomments;
$requested = @parse_url($_SERVER['REQUEST_URI']);
if ($requested === false)
return;
$requested = $requested['path'];
if (is_404() || is_trackback() || is_search() ||
is_comments_popup() || YLSY_PermalinkRedirect::is_skip($requested))
return;
// Check whether we need to do redirect for FeedBurner.
// NOTE this might not always get executed. For feeds,
// WP::send_headers() might send back a 304 before template_redirect
// action can be called.
if (is_feed() && !is_archive() && !$withcomments) {
$feedburner = get_settings('permalink_redirect_feedburner');
if ($feedburner && !YLSY_PermalinkRedirect::is_feedburner()) {
header('HTTP/1.1 302 Found');
header('Status: 302 Found');
header("Location: http://feeds.feedburner.com/$feedburner");
exit(0);
} else {
return;
}
}
$link = YLSY_PermalinkRedirect::guess_permalink();
if (!$link)
return;
$permalink = @parse_url($link);
if ($requested != $permalink['path']) {
header('HTTP/1.1 301 Moved Permanently');
header('Status: 301 Moved Permanently');
header("Location: $link");
exit(0);
}
}
}
… und so sollte es klappen.
Nachdem mich die 2.0er-Versionen von Wordpress nicht überzeugen konnten, und ich bis gestern nur die 1.52 genutzt habe - bin ich mit dem jetzigen Upgrade bisher zufrieden. Endlich ein Upgrade, das ich nicht wieder rückgängig machen muss. Schade zwar, dass die Cache-Funktion aktuell noch so ihre Zicken macht, aber Wordpress 2.1 reagiert auch ohne Cache schön fix.
Erfreulich:
An meinem Theme muss ich noch ein wenig arbeiten - ich kann mir sicherlich die ein oder andere Datenbank-Abfrage sparen - Mal sehen, was man noch so alles rausholen kann.
Bitte beachten Sie unbedingt die allgemeinen Hinweise zur Verwendung hier veröffentlichter Code-Beispiele!
Thema Permalink-Redirect: Die aktuelle Version von Permalink-Redirect ist die 0.62 - Diese läuft unter Wordpress 2.1 auch ohne weitere Bearbeitung einwandfrei.
Thema Wordpress-Cache: Wie man die Cache-Funktion “reparieren” kann, ist in diesem Beitrag zu lesen.
Bookmarks, Feed und Links
Wenn Ihnen dieser Beitrag geholfen hat ...
Beiträge zu ähnlichen Themen:
Kommentar schreiben