1 Blog – 2 URLs – 3 Probleme
13. Dezember 2006 von GabedatenWie ich bereits vorhin geschrieben hatte, hab ich eine WP-Installation unter 2 URLs (in meinem Fall Subdomains) auf die Welt losgelassen.
Voraussetzung dafür ist erstmal (Problem 1), das beide Domains beim selben Webhoster gehostet werden und auf den selben Webspace zugreifen und die selbe Datenbank ansprechen können. Konkret ist es so, das beide Adressen auf ein identisches Verzeichnis in meinem Webspace verweisen. Alternativ könnten es auch zwei Verzeichnisse sein, wobei man dann die WP-Installation vom Installationsverzeichnis auf das andere per Symbolischen Links mappen müßte.
Das zweite Problem, daß WP absolute URLs auch für interne Links an Hand der Option ‘siteurl’ (und ‘home’?) generiert, hab ich mit einem Filter für ‘option_’ erschlagen, hier als Schnellschuß in der ja eigentlich veralteteten ‘my_hacks.php’, besser wäre das wohl in einem Plugin aufgehoben. Hier wird einfach der Serverparameter ‘HTTP_HOST’ (plus vorangestelltem ‘http://’) anstelle des Datenbankeintrages zurück gegeben.
Das dritte Problem der unterschiedlichen Themes für die beiden Seiten ist ebenfalls nur ein schneller Hack, die Option für ‘theme’ liefert, wenn der Host ‘ein.gabedaten.de’ ist immer ‘default_de’, also das deutsche Standardtheme zurück. Ansonsten das im Adminbereich konfigurierte. In meinem Fall im Moment das Weihnachtstheme von B.Hafner (besten Dank!)
Und hier noch mal das Rezept zum Mitschreiben (my-hacks.php):
<?php
//--- Spezielle Funktionen ---
// Filter für die Option 'siteurl'
function get_host_as_siteurl( $value ) {
return 'http://'.$_SERVER['HTTP_HOST'];
}
add_filter( 'option_siteurl', 'get_host_as_siteurl');
// Filter für die Option 'template' und 'stylesheet'
function get_template_by_host( $value ) {
// für Hostname 'ein.gabedaten.de' immer
// das DE-Standardtheme zurückgeben
if( strpos( $_SERVER['HTTP_HOST'], 'ein.gabedaten.de') !== false )
return 'default_de';
else
return $value;
}
add_filter( 'option_template', 'get_template_by_host');
add_filter( 'option_stylesheet', 'get_template_by_host');
?>
Alle Angaben wie immer ohne Gewähr :-)