2017-11-03 1 views
0

Ich habe ein WordPress-Theme, das auf mehreren Seiten verwendet werden muss. Also schrieb ich diese Funktion, um zu bestimmen, welche Seite das Thema auf:Switch in WordPress-Funktion, die nicht funktioniert

/* 
* Check which site 
*/ 
function determine_site() { 

    $the_site = ''; 
    $URL = $_SERVER['HTTP_HOST']; 

    switch($URL){ 
    case 'domain1.com': 
    case 'develop1.ment.com': 
     $the_site = 'domain1_com'; 
     break; 
    case 'domain2.com': 
    case 'develop2.ment.com': 
     $the_site = 'domain2_com'; 
     break; 
    default; 
     $the_site = 'domain_undetermined'; 
     break; 
    } 
    return $the_site; 
} 

Und diese Funktion dann von einer anderen Funktion aufgerufen wird, die es die Körper-Klasse auf der Website ergänzt, wie zum Beispiel:

/* 
* Add body class 
*/ 
function add_custom_body_class($classes) { 
    $which_language = determine_site(); 
    $classes[] = $which_language; 
    return $classes; 
} 
add_filter('body_class', 'add_custom_body_class'); 

Aber es erreicht den Standardfall und setzt domain_undetermined als die body-Klasse (die es in einem der ersten Fälle übereinstimmen sollte). Wenn ich die $URL -var in der Spitze des determine_site -function ausdrucken, als solche:

function determine_site() { 

    $the_site = ''; 
    $URL = $_SERVER['HTTP_HOST']; 
    echo '<pre>; 
    print_r($URL); 
    echo '</pre>; 
    ... 
    ... 
    ... 

Dann gibt es diese (!?):

develop1.ment.comclass="home page-template-default page page-id-11 logged-in admin-bar no-customize-support wp-custom-logo domain_undetermined"> 

Warum gedruckt wird es das Ende die body -Klassen auch?

Eine andere Sache, die Kriegsbeil begraben helfen könnte herauszufinden, wo ... Wenn ich sanitize_title (ein Wordpress-Funktion) laufen auf $URL, als solche:

function determine_site() { 

    $the_site = ''; 
    $URL = $_SERVER['HTTP_HOST']; 
    $URL = sanitize_title($URL); 
    echo '<pre>'; 
    print_r($URL); 
    echo '</pre>'; 
    ... 
    ... 
    ... 

... Dann gibt es diese (obwohl ich bin auf den develop1.ment.com -Domäne.

www-domain1-comclass="home page-template-default page page-id-11 logged-in admin-bar no-customize-support wp-custom-logo domain_undetermined"> 

die Entwicklung-Server hat einig Proxy-Material, das diesen letzten Bit erklärt - aber nicht all diese Geheimnisse erklärt

+0

Können Sie auch die $ URL-Variable ausgeben, um sicherzustellen, dass Ihr Vergleich im Switch zumindest wahr wird. Wenn Sie Standardwerte erhalten, bedeutet dies, dass alle Vergleiche falsch sind und daher auf Standardwerte gesetzt werden. Lässt die Ausgabe von $ URL zuerst sehen. –

+0

'develop1.ment.com'! = 'Development.ment1.com' – B68C

+0

Danke @ B68C .. Ich habe jetzt diesen Tippfehler korrigiert. – Zeth

Antwort

0

Würde so etwas anstelle Ihrer eigenen Funktion "Körperklasse hinzufügen" funktionieren?

Verwandte Themen