Ist spät, deshalb nur zwei schnelle Code-Beispiele aus meiner eigenen Seite. Ausführlicherer Blog-Beitrag kommt vielleicht später noch.
Folgendes fügt in einem Twenty-Eleven-Child-Theme eine Klasse mit dem Namen der Seite dem Body-Tag hinzu:
/**
* Adds a site-specific CSS class to the list of body classes.
*
* @param array $classes An array of body class names.
* @return array The modified body class name array.
*/
function abc_body_class($classes) {
global $blog_id;
$blog_details = get_blog_details($blog_id, false);
$domain = str_replace('.', '-', $blog_details->domain);
$classes[] = 'blog-' . $domain;
return $classes;
}
add_filter('body_class', 'abc_body_class', 12);
Alles anzeigen
Ich nutze für meine Multsite Sub-Domains, deswegen nehme ich den Domainnamen zum Aufbau des Klassennamens, mit dem Präfix "blog-" davor. Man könnte das aber genauso mit dem Seitennamen machen. Der müsste dann nur noch durch eine slug-Funktion geschickt werden, damit da keine für CSS ungültigen Zeichen reinkommen.
Der Klassenname lautet dann z.B. "blog-subdomain1-example-com" oder "blog-example-com". Damit kann man im Stylesheet Dinge modifizieren.
Und zum Testen in PHP auf bestimmte Blogs habe ich mir für die benötigten Blogs Funktionen wie diese geschrieben:
/**
* Checks whether the current blog is the code blog.
*
* @return bool True if the current blog is the code blog site, false
* otherwise.
*/
function abc_is_code_blog() {
global $blog_id;
$blog_details = get_blog_details($blog_id, false);
return (strpos($blog_details->domain, 'code.example') === 0);
}
Alles anzeigen
Der Vergleich der Position statt des Prüfens des ganzen Strings wird nur gemacht, da ich das online als example.net und lokal als example.loc laufen habe. Wenn Du solche Spielerein nicht brauchst kannst Du auch einfach einen String-Vergleich nutzen. In der sidebar.php könntest Du dann so switchen:
if (abc_is_code_blog()) {
dynamic_sidebar( 'sidebar-code-blog' )
} else {
dynamic_sidebar( 'sidebar-1' )
}
Für register_sidebar natürlich genauso.
So, hoffe das hilft weiter. Ansonsten fragen. :-)