Wie auch schon teilweise im Arikelt "WordPress mit mehreren Themes verwenden" angewandt, habe ich nun dieses PlugIn etwas erweitert für einen anderen Anwednungsfall.
Anforderung war:
– 20 (und mehr…) Domains mit unterschiedlichem Content
– 1 Layout (individuelle Layouts sind aber mit gleichem PlugIn machbar)
– 1 Admininterface
– Nutzung als CMS
Umsetzung / Prinzip:
Alle 20 Domain werden im Webserver so eingerichtet, das sie auf den gleichen DocumentRoot zeigen.
Kein Redirect oder ähnliches!!!
Es werden für den Content lediglich Pages verwendet!
Für jede der Domains legt man eine Page im WordPress an, die als Startseite (mittels Static Front Page) eingerichtet wird. Diese Page dient gleichzeit als "übergeordnete" Seite für alle Content-Seiten einer jeden Domain.
Die einzelnen Seiten einer Domain (Microsite) werden als dieser Page untergeordnet.
Im WordPress haben wir so, nun schon ein übersichtliche Struktur für die Verwaltung der einzelnen Seiten und deren Content.
Das PlugIn muss nun ermitteln, welche Domain gerade angesurft wird und in meinem Fall zerlegt es die Domain so, das am Ende nur der String zwischen der TLD und der SubDomain übrigbleibt.
Aus "www.domainname1.de" wird dann also "domainname1".
Unserer übergeordneten Page für diese Microsite geben wir im WordPress den Slug/Titel-form "domainname1".
Das PlugIn sucht jetzt also mit dem Domainnamen in der Datenbank nach einer Page die den Slug "domainname1" hat und als Sicherheit auch noch den Parameter "post_parent" = "0" hat.
Die Funktion sollte dann lediglich die Page ID zurückliefern. Mehr brauchen wir aktuell nicht.
Im Theme werden nun in der Sidebar alle Pages einer Microsite aufgelistet.
Dies geht mit
wp_list_pages('title_li=&child_of=XX');
Für "XX" wird am besten per Variable nun die ermittelte PageID übergeben.
Schon listet er nur die Pages dieser Domain/Microsite auf.
Hier geben hier absichtlich nur einen Anreisser des ganzen, da ich hier nicht unnötig ins Detail gehen will.
Je nach Interesse/Nachfrage, kann ich das auch gern mal später ausführlicher beschreiben.