2011-01-15 5 views
2

Ich habe eine einzige Installation von Wordpress, die zwei Domain-Namen betreibt. Um es einfach auszudrücken, Site A hat vier statische Seiten und Site B hat vier statische Seiten, aber sie beide teilen eine gemeinsame Blog-Posts-Seite.Wie kann ein Codeblock bedingt mit PHP geladen werden?

Site A sollte oben eine Navigationsleiste haben, die auf die anderen Site A-Seiten verweist, und Site B sollte eine Navigationsleiste haben, die auf die anderen Site B-Seiten verweist.

Da sie (unbedingt) ein gemeinsames WordPress Theme teilen, möchte ich in der header.php Datei eine PHP if Erklärung für einen Block des Codes, der das Site A Nav und ein anderes für das Site B Nav ist. Aber ich bin mir nicht sicher, nach welcher Bedingung ich eigentlich suchen sollte. Gibt es eine Möglichkeit, dass einige Seiten sich als PHP zu Site A und andere zu Site B identifizieren können?

Antwort

1

Sie setzen in beiden Standorten Variablen könnten vor dem Header Anruf, dann wird eine if-Anweisung die richtige Navigation zeigen, .

Standort A

<? 
$site = 'A'; 
require('header.php'); 
?> 

header.php

<? 
if($site == 'A') { 
    //Site A nav 
} else { 
    //Site B nav 
} 
?> 

Allerdings, wenn Ihr zwei Standorten unterschiedlichen Domainnamen haben, können Sie bei der Suche $_SERVER global und Schlüssel aus der, dass direkt in Ihrem header.php stattdessen.

+0

Dieser Ansatz erhöht die Kopplung zwischen der Kopfzeile und den Seiten, die sie enthalten, aber leider ist es die einzige 100% zuverlässige Methode, dies zu tun, die ich kenne. Das Überprüfen von Variablen in $ _SERVER, wie andere vorschlagen, kann mit Problemen behaftet sein, und noch schlimmer, diese Probleme können sich nicht sofort manifestieren. –

+0

Danke Michael. Wenn das der Fall ist, spielt es eine Rolle, wo Wordpress installiert ist? Momentan befindet es sich im Stammverzeichnis von Site A. Ich dachte daran, die Besucher von Site B einfach über '.htaccess 'umzuleiten, aber gibt es dafür eine bessere Strategie? –

+0

Wenn Sie Variablen setzen, sollte es keine Rolle spielen, wo es installiert ist. Was die Strategie betrifft, ist es wirklich nur wichtig, was dein Endziel ist. –

0

Wenn diese beiden Websites verschiedene Domain-Namen haben Sie, indem Sie bestätigen können:

if($_SERVER['HTTP_HOST']=="sitea.com"){ 
    //code for site a 
} else { 
    //code for site b 
} 
+0

Wenn das der Fall ist, spielt es eine Rolle, wo Wordpress installiert ist? Momentan befindet es sich im Stammverzeichnis von Site A. Ich dachte daran, die Besucher von Site B einfach über '.htaccess' umzuleiten. –

0
if ($_SERVER['SERVER_NAME']=="www.whatever.com") { 
//show site a header 
} 
Verwandte Themen