Mehrere Blogs mit einer Wordpress Installation betreiben

Jedes mal, wenn eine neue Wordpress Version veröffentlicht wird und diese wichtige Sicherheitslöcher behebt ist das Gejammer bei vielen Webmastern groß – haben die meisten doch durchaus einige Blogs oder Satelliten Seiten die mit Wordpress laufen.

Da man aber Wordpress sehr einfach zu einem Multidomain Script umbauen kann, muss das nicht sein. Vorteil ist ganz klar, dass man die Updates, sowohl von Wordpress als auch von den Plugins, nur einmal ausführen muss. Damit eine Wordpress Installation mehrere Domains bedienen kann, muss man nur eine kleine If – Weiche in die config.php einbauen.

Normalerweise schaut die Config im Bereich der Datenbank daten so aus:

    define('DB_NAME', '...........');  // Datenbank Name
    define('DB_USER', '.........');  // Datenbank User
    define('DB_PASSWORD', '***************');  // Datenbank Passwort
    define('DB_HOST', 'localhost'); // Datenbank Host
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');

Wenn man die Installation jetzt für mehrere Domains nutzen will, muss man diese Daten für jede Domain bereithalten. Dazu ersetzt man zuerst einmal den $table_prefix:

   $table_prefix = str_replace( array( ".", "-" ), "_", $_SERVER["HTTP_HOST"] )."_";
   $table_prefix = str_replace("www_","",$table_prefix);

In der Stadard Config ist der $table_prefix einfach nur 'wp_'. Jetzt wird das ganze etwas komplexer. Der $table_prefix ist mit dieser Modifikation immer automatisch die Domain. Bei blog.codersx.net wäre das ganze dann beispielsweise blog_codersx_net_. Dadurch lässt sich jetzt relativ leicht für jede Domain eine andere MySQL Tabelle benutzen:

  if($table_prefix == "blog_codersx_net_")
   {
    define('DB_NAME', '...........');  // Datenbank Name
    define('DB_USER', '.........');  // Datenbank User
    define('DB_PASSWORD', '***************');  // Datenbank Passwort
    define('DB_HOST', 'localhost'); // Datenbank Host
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');
   }

So kann man recht einfach für jeden weiteren Blog den man anlegen will, einfach eine IF Abfrage formulieren und diesem Blog damit eigene MySQL Daten mitgeben. Natürlich lassen sich mit einer MySQL Tabelle auf diese Weise auch mehrere Blogs betreiben. Je nach Traffic & Post Anzahl würde ich aber nicht mehr als drei oder vier Blogs in einer MySQL Tabelle betreiben. Sollte ja heute, wo man gut ausgestatteten Webspace hinterhergeschmissen kriegt, auch kein Problem mehr sein.

Man könnte das ganze auch mit Wordpress MU ( Multi User ) umsetzen allerdings gibts da ein paar Kleinigkeiten die leider nicht so perfekt sind. Beispielsweise funktionieren ein paar Plugins nicht für MU, da dort deutlich anders gearbeitet worden ist als bei dem Trick oben. Daher würde ich eigentlich eher den Weg über die config.php empfehlen.

Mit der oben vorgestellten Lösung gibts eigentlich keine Ausreden mehr, dass man nicht alle Wordpress Installationen geupdatet hat.

Trackback URL for this post:

http://www.codersx.net/trackback/96

Pingback

[...] Mehrere Blogs mit einer Wordpress Installation betreiben | CodersX SEO Blog www.codersx.net/blog/96/mehrere-blogs-mit-einer-wordpress-installation-b... – view page – cached Jedes mal, wenn eine neue Wordpress Version veröffentlicht wird und diese wichtige Sicherheitslöcher behebt ist das Gejammer bei vielen Webmastern groß – haben die meisten doch durchaus einige Blogs oder Satelliten Seiten die mit Wordpress — From the page [...]

Pingback

[...] Comics über Twitter Eine Wordpress-Installationen – mehrere Domains 3 Karten für den OMClub gewinnen 3 weitere Karten gewinnen bei [...]

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.

Weitere Informationen über Formatierungsoptionen

CAPTCHA
Bitte füllen sie dieses Captcha aus um sich als Mensch zu verifizieren.
Image CAPTCHA
Enter the characters shown in the image.