Je nach Referrer unterschiedliches Layout

Frage: Meine Website soll je nach Referrer ein unterschiedliches Layout haben. Kann ich dazu unterschiedliche Stylesheets laden?

Ein Referrer ist die Internetadresse der Webseite, von der der Benutzer durch Anklicken eines Links zu der aktuellen Seite gekommen ist (englisch to refer „verweisen“). (Quelle: Wikipedia)

In WordPress Themes wird üblicherweise im Body-Tag die Funktion body_class() verwendet:

WordPress fügt mit dieser Funktion CSS-Klassen für unterschiedliche Inhalte hinzu (etwa „home“ für die Startseite, „page“ für Seiten, „single-post“ für einen einzelnen Beitrag, etc.). Man kann aber auch den Hook dieser Funktion nutzen, um eigene Klassen hinzuzufügen:

Dieser Code fügt, wenn jemand zum Beispiel bei Google einen Link auf die eigene Webseite angeklickt hat, im Body-Tag die CSS-Klasse „google“ ein. Diese Klasse kann man für eine abweichende Gestaltung im Stylesheet nutzen:

Ob dabei die Style-Regeln nur aus einem Stylesheet kommen (besser für die Performance, da weniger Dateien abgerufen werden müssen), oder du für jeden Referrer ein eigenes Stylesheet anlegst (übersichtlicher), macht dabei wenig Unterschied.

(Ideal wäre die Verwendung von SASS, weil einzelne Stylesheets je Referrer mit @import integriert werden könnten. Beim Kompilieren werden die Dateien dann zu einem Stylesheet zusammengefügt.)