Vertrauenswürdige WordPress-Tutorials, wenn Sie sie am dringendsten benötigen.
Anfängerleitfaden für WordPress
WPB Cup
25 Millionen+
Websites, die unsere Plugins verwenden
16+
Jahre WordPress-Erfahrung
3000+
WordPress-Tutorials von Experten

WordPress Body Class 101: Tipps und Tricks für Theme-Designer

Wenn Sie ein aufstrebender WordPress-Theme-Designer sind, ist die Beherrschung von CSS der Schlüssel zur Erschließung von mehr Kontrolle, Anpassung und Effizienz in Ihrem Workflow. 

Glücklicherweise fügt WordPress automatisch CSS-Klassen hinzu, die Sie in Ihren Themes verwenden können. Mehrere dieser CSS-Klassen werden automatisch zum <body>-Bereich jeder Seite einer WordPress-Website hinzugefügt.

In diesem Artikel erklären wir die WordPress Body Class. Wir teilen auch Tipps und Tricks zur Verwendung von WordPress Body Classes aus jahrelanger Erfahrung in der Theme-Entwicklung, um Ihnen bei der Verbesserung Ihrer Projekte zu helfen.

Verwendung der WordPress body class für die Theme-Entwicklung
Here is a quick overview of what you’ll learn in this article.

Was ist die WordPress Body Class?

Body class (body_class) ist eine WordPress-Funktion, mit der Sie dem Body-Element CSS-Klassen zuweisen können.

Der HTML-Body-Tag beginnt normalerweise in der header.php-Datei eines Themes, die auf jeder Seite geladen wird. Dies ermöglicht es Ihnen, dynamisch zu ermitteln, welche Seite ein Benutzer gerade anzeigt, und dann die CSS-Klassen entsprechend hinzuzufügen.

Normalerweise enthalten die meisten Starter-Themes und Frameworks die body_class-Funktion bereits im HTML-Body-Tag. Wenn Ihr Theme diese jedoch nicht hat, können Sie sie hinzufügen, indem Sie den Body-Tag wie folgt ändern:

<body <?php body_class($class); ?>>

Abhängig von der Art der angezeigten Seite fügt WordPress automatisch die entsprechenden Klassen hinzu.

Wenn Sie sich beispielsweise auf einer Archivseite befinden, fügt WordPress automatisch die Archivklasse zum Body-Element hinzu. Das macht es für fast jede Seite.

Verwandt: Sehen Sie wie WordPress hinter den Kulissen funktioniert (Infografik).

Hier sind einige Beispiele für gängige Klassen, die WordPress je nach angezeigter Seite hinzufügen könnte:

.rtl {}
.home {}
.blog {}
.archive {}
.date {}
.search {}
.paged {}
.attachment {}
.error404 {}
.single postid-(id) {}
.attachmentid-(id) {}
.attachment-(mime-type) {}
.author {}
.author-(user_nicename) {}
.category {}
.category-(slug) {}
.tag {}
.tag-(slug) {}
.page-parent {}
.page-child parent-pageid-(id) {}
.page-template page-template-(template file name) {}
.search-results {}
.search-no-results {}
.logged-in {}
.paged-(page number) {}
.single-paged-(page number) {}
.page-paged-(page number) {}
.category-paged-(page number) {}
.tag-paged-(page number) {}
.date-paged-(page number) {}
.author-paged-(page number) {}
.search-paged-(page number) {}

Wie Sie sehen können, haben Sie mit einer so leistungsstarken Ressource zur Hand die Möglichkeit, Ihre WordPress-Seite vollständig mit nur CSS anzupassen. Sie können spezifische Autorenprofilseiten, datumsbasierte Archive usw. anpassen.

Das gesagt, schauen wir uns nun an, wie und wann Sie die body-Klasse verwenden würden.

Wann die WordPress Body Class verwendet werden sollte

Zuerst müssen Sie sicherstellen, dass das body-Element Ihres Themes die body_class-Funktion enthält, wie oben gezeigt. Wenn dies der Fall ist, werden automatisch alle von WordPress generierten CSS-Klassen automatisch übernommen, die oben erwähnt wurden.

Danach können Sie dem Body-Element auch Ihre eigenen benutzerdefinierten CSS-Klassen hinzufügen. Sie können diese Klassen hinzufügen, wann immer Sie sie benötigen.

Wenn Sie beispielsweise das Erscheinungsbild von Artikeln eines bestimmten Autors ändern möchten, die unter einer bestimmten Kategorie abgelegt sind.

Benutzerdefinierte Body-Klassen hinzufügen

WordPress verfügt über einen Filter, den Sie verwenden können, um bei Bedarf benutzerdefinierte Body-Klassen hinzuzufügen. Wir zeigen Ihnen, wie Sie eine Body-Klasse mithilfe des Filters hinzufügen, bevor wir Ihnen das spezifische Anwendungsfallszenario zeigen, damit alle auf dem gleichen Stand sind.

Da Body-Klassen themenspezifisch sind, müssen Sie den folgenden Code zu Ihrer Theme-Datei functions.php oder in einem Code-Snippet-Plugin hinzufügen.

function my_class_names($classes) {
    // add 'class-name' to the $classes array
    $classes[] = 'wpb-class';
    // return the $classes array
    return $classes;
}
 
//Now add test class to the filter
add_filter('body_class','my_class_names');

Der obige Code fügt jedem Tag auf Ihrer Website eine Klasse namens „wpb-class“ hinzu.

Wir empfehlen, diesen Code mit WPCode hinzuzufügen, dem besten Code-Snippet-Plugin auf dem Markt. Es macht es sicher und einfach, benutzerdefinierten Code in WordPress hinzuzufügen, ohne die functions.php-Datei Ihres Themes zu bearbeiten.

Zuerst müssen Sie das kostenlose WPCode-Plugin installieren und aktivieren. Wenn Sie eine Anleitung benötigen, sehen Sie sich unseren Leitfaden zur Installation eines WordPress-Plugins an.

Sobald das Plugin aktiviert ist, gehen Sie in Ihrem WordPress-Dashboard zu Code Snippets » + Snippet hinzufügen .

Suchen Sie dann die Option „Benutzerdefinierten Code hinzufügen (Neues Snippet)“ und klicken Sie darunter auf die Schaltfläche „+ Benutzerdefiniertes Snippet hinzufügen“.

Benutzerdefinierten Code in WPCode hinzufügen

Von dort aus müssen Sie aus der Liste der angezeigten Optionen einen Code-Typ auswählen.

Wählen Sie für dieses Tutorial „PHP-Schnipsel“.

Wählen Sie PHP-Snippet als Code-Typ

Fügen Sie als Nächstes einen Titel für Ihr Snippet hinzu, der Ihnen helfen kann, sich daran zu erinnern, wofür der Code bestimmt ist.

Fügen Sie dann den obigen Code in das Feld 'Code-Vorschau' ein.

Fügen Sie den Code in das Feld Code-Vorschau ein

Schalten Sie danach einfach den Schalter von 'Inaktiv' auf 'Aktiv' und klicken Sie auf die Schaltfläche 'Snippet speichern'.

Aktivieren und speichern Sie Ihren benutzerdefinierten Code-Snippet

Jetzt können Sie diese CSS-Klasse direkt in der Stylesheet-Datei Ihres Themes verwenden.

Wenn Sie an Ihrer eigenen Website arbeiten, können Sie das CSS auch über die Funktion „Benutzerdefiniertes CSS“ im WordPress Theme Customizer hinzufügen.

Hinzufügen von benutzerdefiniertem CSS im Theme-Customizer

Weitere Details finden Sie in unserem Leitfaden zum einfachen Hinzufügen von benutzerdefiniertem CSS zu Ihrer WordPress-Website.

Body-Klasse mit einem WordPress-Plugin hinzufügen

Wenn Sie nicht an einem Kundenprojekt arbeiten und keinen Code schreiben möchten, ist diese Methode für Sie einfacher.

Das Erste, was Sie tun müssen, ist, das Plugin Custom Body Class zu installieren und zu aktivieren. Weitere Details finden Sie in unserer Schritt-für-Schritt-Anleitung zum Thema Installation eines WordPress-Plugins.

Nach der Aktivierung müssen Sie die Seite Einstellungen » Benutzerdefinierte Body-Klasse besuchen. Von hier aus können Sie die Plugin-Einstellungen konfigurieren.

Einstellungen für benutzerdefinierte Body-Klassen

Sie können die Beitragstypen auswählen, für die Sie die Body-Class-Funktion aktivieren möchten, und wer darauf zugreifen kann. Vergessen Sie nicht, auf die Schaltfläche 'Änderungen speichern' zu klicken, um Ihre Einstellungen zu speichern.

Als Nächstes können Sie jeden Beitrag oder jede Seite auf Ihrer WordPress-Website bearbeiten. Auf dem Beitragsbearbeitungsbildschirm finden Sie in der rechten Spalte eine neue Meta-Box mit der Bezeichnung „Post Classes“.

Body-Klassen zu einem Beitrag in WordPress hinzufügen

Klicken Sie hier, um Ihre benutzerdefinierten CSS-Klassen hinzuzufügen. Sie können mehrere Klassen hinzufügen, die durch ein Leerzeichen getrennt sind.

Sobald Sie fertig sind, können Sie Ihren Beitrag einfach speichern oder veröffentlichen. Das Plugin fügt nun Ihre benutzerdefinierten CSS-Klassen zur Body-Klasse für diesen speziellen Beitrag oder diese Seite hinzu.

Verwendung von bedingten Tags mit der Body-Klasse

Die wahre Stärke der body_class-Funktion zeigt sich, wenn sie mit bedingten Tags verwendet wird.

Diese bedingten Tags sind Daten vom Typ Wahr oder Falsch, die prüfen, ob eine Bedingung in WordPress wahr oder falsch ist. Zum Beispiel prüft der bedingte Tag is_home, ob die aktuell angezeigte Seite die Homepage ist oder nicht.

Dies ermöglicht Theme-Entwicklern zu prüfen, ob eine Bedingung wahr oder falsch ist, bevor sie eine benutzerdefinierte CSS-Klasse zur body_class-Funktion hinzufügen.

Sehen wir uns einige Beispiele für die Verwendung von bedingten Tags an, um benutzerdefinierte Klassen zur body-Klasse hinzuzufügen.

Nehmen wir an, Sie möchten Ihre Homepage für angemeldete Benutzer mit der Benutzerrolle des Autors anders gestalten. Während WordPress automatisch eine .home- und eine .logged-in-Klasse generiert, erkennt es die Benutzerrolle nicht und fügt sie nicht als Klasse hinzu.

Nun, dies ist ein Szenario, in dem Sie die bedingten Tags mit benutzerdefiniertem Code verwenden können, um dynamisch eine benutzerdefinierte Klasse zur Body-Klasse hinzuzufügen.

Um dies zu erreichen, fügen Sie den folgenden Code zu Ihrer Theme-Datei functions.php oder einem Code-Snippet-Plugin hinzu.

function wpb_loggedin_user_role_class($classes) { 
 
// let's check if it is homepage
if ( is_home() ) {
 
// Now let's check if the logged in user has author user role.  
$user = wp_get_current_user();
if ( in_array( 'author', (array) $user->roles ) ) {
    //The user has the "author" role
    // Add user role to the body class
    $classes[] = 'author';
    // Return the classes array
    return $classes;      
} 
} else { 
// if it is not homepage, then just return default classes
return $classes; 
}
} 
 
add_filter('body_class', 'wpb_loggedin_user_role_class');

Nun werfen wir einen Blick auf ein weiteres nützliches Beispiel. Diesmal prüfen wir, ob die angezeigte Seite eine Vorschau eines WordPress-Entwurfs ist.

Dazu verwenden wir das bedingte Tag is_preview und fügen dann unsere benutzerdefinierte CSS-Klasse hinzu.

function add_preview_class($classes) { 
if ( is_preview() )  {
$classes[] = 'preview-mode';
return $classes;
}
return $classes; 
}
add_filter('body_class','add_preview_class');

Nun fügen wir den folgenden CSS-Code zum Stylesheet unseres Themes hinzu, um die neue benutzerdefinierte CSS-Klasse zu nutzen, die wir gerade hinzugefügt haben.

.preview-mode .site-header:before { 
content:'preview mode';
color:#FFF;
background-color:#ff0000;
}

So sah es auf unserer Demoseite aus:

Benutzerdefinierte Vorschau-Modus-CSS-Klasse zur Body-Klasse hinzugefügt

Möglicherweise möchten Sie die vollständige Liste der bedingten Tags überprüfen, die Sie in WordPress verwenden können. Dies gibt Ihnen eine praktische Sammlung von sofort einsatzbereiten Tags für Ihren Code.

Weitere Beispiele für das dynamische Hinzufügen von benutzerdefinierten Body-Klassen

Abgesehen von bedingten Tags können Sie auch andere Techniken verwenden, um Informationen aus der WordPress-Datenbank abzurufen und benutzerdefinierte CSS-Klassen für die body-Klasse zu erstellen.

Hinzufügen von Kategorienamen zur body-Klasse einer einzelnen Beitragsseite

Nehmen wir an, Sie möchten das Erscheinungsbild einzelner Beiträge basierend auf der Kategorie, in der sie abgelegt sind, anpassen. Sie können die Body-Klasse verwenden, um dies zu erreichen.

Zuerst müssen Sie Kategorienamen als CSS-Klasse auf einzelnen Beitragsseiten hinzufügen. Fügen Sie dazu den folgenden Code in die functions.php-Datei Ihres Themes oder ein Code-Snippet-Plugin wie WPCode ein:

// add category nicenames in body class
function category_id_class($classes) {
    global $post;
    foreach((get_the_category($post->ID)) as $category)
        $classes[] = $category->category_nicename;
    return $classes;
}
  
add_filter('body_class', 'category_id_class');

Der obige Code fügt die Kategorieklasse zur Body-Klasse für einzelne Beitragsseiten hinzu. Sie können dann CSS-Klassen verwenden, um sie nach Belieben zu gestalten.

Hinzufügen des Seiten-Slugs zur Body-Klasse

Fügen Sie den folgenden Code in die functions.php-Datei Ihres Themes oder in ein Code-Snippets-Plugin ein:

//Page Slug Body Class
function add_slug_body_class( $classes ) {
global $post;
if ( isset( $post ) ) {
$classes[] = $post->post_type . '-' . $post->post_name;
}
return $classes;
}
add_filter( 'body_class', 'add_slug_body_class' );

Wir empfehlen erneut, diesen Code in WordPress mit einem Code-Snippet-Plugin wie WPCode hinzuzufügen. Auf diese Weise müssen Sie sich keine Sorgen machen, Ihre Website zu beschädigen.

Beginnen Sie mit der Installation und Aktivierung des kostenlosen WPCode-Plugins. Wenn Sie Hilfe benötigen, folgen Sie dieser Anleitung zur Installation eines WordPress-Plugins.

Sobald das Plugin aktiviert ist, gehen Sie im WordPress-Dashboard zu Code Snippets » Snippet hinzufügen.

Klicken Sie dann unter der Option „Benutzerdefinierten Code hinzufügen (Neuer Snippet)“ auf die Schaltfläche „Snippet verwenden“.

Benutzerdefinierten Code in WPCode hinzufügen

Wählen Sie als Nächstes 'PHP-Snippet' als Code-Typ aus.

Wählen Sie PHP-Snippet als Code-Typ

Fügen Sie danach einfach einen Titel für Ihren Code-Schnipsel hinzu und fügen Sie den obigen Code in das Feld „Code-Vorschau“ ein.

Fügen Sie den Code-Schnipsel in WPCode ein

Schalten Sie schließlich den Schalter von 'Inaktiv' auf 'Aktiv' und klicken Sie auf die Schaltfläche 'Snippet speichern'.

Aktivieren und speichern Sie Ihren benutzerdefinierten Code-Snippet

Browsererkennung und browserspezifische Body-Klassen

Manchmal treten Probleme auf, bei denen Ihr Theme für einen bestimmten Browser zusätzlichen CSS-Code benötigt.

Nun, die gute Nachricht ist, dass WordPress den Browser beim Laden automatisch erkennt und diese Informationen dann temporär als globale Variable speichert.

Sie müssen lediglich prüfen, ob WordPress einen bestimmten Browser erkannt hat, und ihn dann als benutzerdefinierte CSS-Klasse hinzufügen.

Kopieren Sie einfach den folgenden Code und fügen Sie ihn in die functions.php-Datei Ihres Themes oder in ein Code-Snippet-Plugin ein:

function wpb_browser_body_class($classes) { 
    global $is_iphone, $is_chrome, $is_safari, $is_NS4, $is_opera, $is_macIE, $is_winIE, $is_gecko, $is_lynx, $is_IE, $is_edge;
 
if ($is_iphone)    $classes[] ='iphone-safari';
elseif ($is_chrome)    $classes[] ='google-chrome';
elseif ($is_safari)    $classes[] ='safari';
elseif ($is_NS4)    $classes[] ='netscape';
elseif ($is_opera)    $classes[] ='opera';
elseif ($is_macIE)    $classes[] ='mac-ie';
elseif ($is_winIE)    $classes[] ='windows-ie';
elseif ($is_gecko)    $classes[] ='firefox';
elseif ($is_lynx)    $classes[] ='lynx';
elseif ($is_IE)      $classes[] ='internet-explorer';
elseif ($is_edge)    $classes[] ='ms-edge';
else $classes[] = 'unknown';
     
return $classes;
}
add_filter('body_class','wpb_browser_body_class');

Sie können dann Klassen wie diese verwenden:

.ms-edge .navigation {some item goes here}

Wenn es sich um ein kleines Padding- oder Margin-Problem handelt, ist dies eine ziemlich einfache Lösung.

Es gibt definitiv viele weitere Szenarien, in denen die Verwendung der body_class-Funktion Ihnen das Schreiben langer Codezeilen ersparen kann. Wenn Sie beispielsweise ein Theme-Framework wie Genesis verwenden, können Sie damit benutzerdefinierte Klassen in Ihrem Child-Theme hinzufügen.

Sie können die body_class-Funktion verwenden, um CSS-Klassen für Seitenlayouts über die gesamte Breite, Sidebar-Inhalte, Header und Footer usw. hinzuzufügen.

Experten-Anleitungen zum WordPress-Theme-Design

Suchen Sie nach weiteren Tutorials? Sehen Sie sich unsere anderen Anleitungen zum Thema Theme-Design in WordPress an:

Wir hoffen, dieser Artikel hat Ihnen geholfen zu lernen, wie Sie die WordPress Body Class in Ihren Themes verwenden. Möglicherweise möchten Sie auch unseren Artikel darüber lesen, wie Sie jeden WordPress-Beitrag unterschiedlich gestalten, und unseren Vergleich der besten WordPress Page Builder Plugins.

Wenn Ihnen dieser Artikel gefallen hat, abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Video-Tutorials. Sie finden uns auch auf Twitter und Facebook.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, wenn Sie auf einige unserer Links klicken, können wir eine Provision verdienen. Sehen Sie wie WPBeginner finanziert wird, warum das wichtig ist und wie Sie uns unterstützen können. Hier ist unser Redaktionsprozess.

Das ultimative WordPress-Toolkit

Erhalten Sie KOSTENLOSEN Zugang zu unserem Toolkit – eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Leserinteraktionen

14 CommentsLeave a Reply

  1. Danke für das Teilen dieser Tipps und Codes zur WordPress Body Class. Ich lerne diese Klasse gerade hier, da ich mich mit der WordPress-Entwicklung beschäftige, daher ist dieser Beitrag für mich vorteilhaft, um mehr über WordPress-Klassen und -Funktionen zu erfahren.

  2. Danke, nachdem ich eine Reihe von Artikeln über die Body-Klasse gelesen hatte, ist dies derjenige, der endlich bei mir angekommen ist.

    Habe es für einzelne Seiten und für Kategorieseiten zum Laufen gebracht, das ist großartig. Die Anwendungsfälle haben für mich den Unterschied gemacht.

  3. Tolle Tipps! Ich versuche herauszufinden, wie ich die Menüklasse (diejenige, die Sie im Admin eingeben können) zu body_class hinzufügen kann:

    [pre]
    /** Add nav menu css class to body class */
    function add_nav_menu_css( $classes ) {
    $classes[] = ‘menu-class-from-admin’;
    return $classes;
    }
    add_filter( ‘body_class’, ‘add_nav_menu_css’ );
    [/pre]

  4. Tolle Tipps. Ich versuche, dies zu tun, und füge „page-template page-template-(template dateiname)“ in meine Header-Datei ein, sodass ich Folgendes habe:

    <body >

    Und dann modifiziere ich mein CSS, um Folgendes einzuschließen: .page-template-home_corechella

    Ich habe eine komplett leere Seite. Nichts. Was mache ich falsch? Danke!

  5. Ich habe eine News-Seite, die Beiträge über category.php abruft. Ich möchte ihr eine spezielle Klasse geben, damit der Inhalt breit und ohne Seitenleiste ist. Wie kann ich das machen?

  6. Tatsächlich eine gute und sehr informative Abhandlung. Nur eine Frage – Wenn ich zum Beispiel heute eine Browser-spezifische Body-Klasse hinzufüge und nach ein paar Tagen eine Seitenklasse im Body-Slug anwenden muss. Werden dann die Einstellungen/CSS, die ich mit der Browser-spezifischen Body-Klasse vorgenommen habe, ruiniert oder nicht?

Hinterlassen Sie eine Antwort

Vielen Dank, dass Sie einen Kommentar hinterlassen. Bitte beachten Sie, dass alle Kommentare gemäß unserer Kommentarrichtlinie moderiert werden und Ihre E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwenden Sie KEINE Schlüsselwörter im Namensfeld. Führen wir ein persönliches und bedeutungsvolles Gespräch.