Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

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

Hinweis der Redaktion: Wir erhalten eine Provision für Partnerlinks auf WPBeginner. Die Provisionen haben keinen Einfluss auf die Meinung oder Bewertung unserer Redakteure. Erfahre mehr über Redaktioneller Prozess.

Sie sind ein aufstrebender WordPress-Theme-Designer und suchen nach neuen Möglichkeiten, CSS in Ihren Themes einzusetzen?

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

In diesem Artikel werden wir die WordPress-Körperklasse mit Tipps und Tricks für angehende Themendesigner erläutern, damit diese sie in ihren Projekten nutzen können.

Using WordPress body class for theme development
Hier ein kurzer Überblick über das, was Sie in diesem Artikel lernen werden.

Was ist 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 Datei header.php eines Themas, die auf jeder Seite geladen wird. Auf diese Weise können Sie dynamisch herausfinden, welche Seite ein Nutzer gerade anschaut, und dann die CSS-Klassen entsprechend hinzufügen.

Normalerweise enthalten die meisten Einsteiger-Themes und -Frameworks bereits die Funktion body class innerhalb des HTML-Body-Tags. Wenn Ihr Thema jedoch nicht über diese Funktion verfügt, können Sie sie hinzufügen, indem Sie den body-Tag wie folgt ändern:

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

Je nach Art der Seite, die angezeigt wird, fügt WordPress automatisch die entsprechenden Klassen hinzu.

Wenn Sie sich zum Beispiel auf einer Archivseite befinden, fügt WordPress dem body-Element automatisch die Klasse archive hinzu. Das macht es für so ziemlich 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 kann:

.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 Sie mit dieser leistungsstarken Ressource Ihre WordPress-Seite allein mit CSS vollständig anpassen. Sie können spezielle Autorenprofilseiten, datumsbasierte Archive usw. anpassen.

Schauen wir uns nun an, wie und wann Sie die Körperklasse verwenden können.

Wann wird die WordPress Body-Klasse verwendet?

Zunächst müssen Sie sicherstellen, dass das body-Element Ihres Themes die Funktion body class wie oben gezeigt enthält. Wenn dies der Fall ist, werden alle oben genannten, von WordPress generierten CSS-Klassen automatisch einbezogen.

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

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

Hinzufügen von benutzerdefinierten Body-Klassen

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

Da Body-Klassen themenspezifisch sind, müssen Sie den folgenden Code in die Datei functions.php Ihres Themes oder in ein Code-Snippets-Plugin einfü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 dem Body-Tag auf jeder Seite Ihrer Website die Klasse „wpb-class“ hinzu.

Wir empfehlen das Hinzufügen dieses Codes mit WPCode, dem besten Code Snippets 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.

Zunächst müssen Sie das kostenlose WPCode-Plugin installieren und aktivieren. Wenn Sie eine Anleitung benötigen, lesen Sie unseren Leitfaden zur Installation eines WordPress-Plugins.

Sobald das Plugin aktiviert ist, gehen Sie in Ihrem WordPress-Dashboard auf Code Snippets Snippet hinzufügen. Suchen Sie dann die Option „Eigenen Code hinzufügen (neues Snippet)“ und klicken Sie auf die Schaltfläche „Snippet verwenden“ darunter.

Add a new custom code snippet in WPCode

Fügen Sie dann einen Titel für Ihr Snippet hinzu und fügen Sie den Code von oben in das Feld „Codevorschau“ ein. Außerdem müssen Sie im Dropdown-Menü auf der rechten Seite „PHP-Snippet“ als Codetyp auswählen.

Paste code into WPCode and select PHP snippet as code type

Danach schalten Sie einfach den Schalter von „Inaktiv“ auf „Aktiv“ um und klicken auf die Schaltfläche „Snippet speichern“.

Activate and save your custom code snippet

Jetzt können Sie diese CSS-Klasse direkt im Stylesheet Ihres Themes verwenden. Wenn Sie an Ihrer eigenen Website arbeiten, können Sie das CSS auch über die benutzerdefinierte CSS-Funktion im WordPress-Theme-Customizer hinzufügen.

Adding custom CSS in theme customizer

Weitere Einzelheiten finden Sie in unserer Anleitung zum einfachen Hinzufügen von benutzerdefiniertem CSS zu Ihrer WordPress-Website.

Hinzufügen der Körperklasse mit einem WordPress-Plugin

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

Als Erstes müssen Sie das Plugin Custom Body Class installieren und aktivieren. Weitere Einzelheiten finden Sie in unserer Schritt-für-Schritt-Anleitung zur Installation eines WordPress-Plugins.

Nach der Aktivierung müssen Sie die Seite Einstellungen “ Benutzerdefinierte Körperklasse aufrufen. Von hier aus können Sie die Plugin-Einstellungen konfigurieren.

Custom Body Class settings

Sie können die Beitragstypen auswählen, für die Sie die Körperklassenfunktion aktivieren möchten, und festlegen, wer darauf zugreifen darf. Vergessen Sie nicht, auf die Schaltfläche „Änderungen speichern“ zu klicken, um Ihre Einstellungen zu speichern.

Als Nächstes können Sie einen beliebigen Beitrag oder eine Seite auf Ihrer WordPress-Website bearbeiten. Auf dem Bearbeitungsbildschirm für den Beitrag finden Sie in der rechten Spalte ein neues Metafeld mit der Bezeichnung „Beitragsklassen“.

Adding body classes to a post in WordPress

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

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 bestimmten Beitrag oder diese Seite hinzu.

Verwendung von bedingten Tags mit der Body-Klasse

Die eigentliche Stärke der Funktion body_class kommt zum Tragen, wenn sie mit den bedingten Tags verwendet wird.

Bei diesen bedingten Tags handelt es sich um true- oder false-Datentypen, die prüfen, ob eine Bedingung in WordPress wahr oder falsch ist. Das bedingte Tag is_home prüft beispielsweise, ob die aktuell angezeigte Seite die Homepage ist oder nicht.

So können Theme-Entwickler 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 der Body-Klasse benutzerdefinierte Klassen hinzuzufügen.

Nehmen wir an, Sie möchten Ihre Homepage für eingeloggte Benutzer mit der Benutzerrolle Autor anders gestalten. Während WordPress automatisch eine .home- und .logged-in-Klasse erzeugt, wird die Benutzerrolle nicht erkannt und nicht als Klasse hinzugefügt.

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

Um dies zu erreichen, fügen Sie den folgenden Code in die Datei functions.php Ihres Themes oder in das Code Snippets Plugin ein.

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');

Schauen wir uns nun ein weiteres nützliches Beispiel an. Diesmal werden wir prüfen, 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 das folgende CSS in das Stylesheet unseres Themes ein, um die neue benutzerdefinierte CSS-Klasse zu verwenden, die wir gerade hinzugefügt haben.

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

So sah es auf unserer Demo-Website aus:

Custom preview mode CSS class added to the body class

Sie sollten sich die vollständige Liste der bedingten Tags ansehen, die Sie in WordPress verwenden können. So erhalten Sie einen praktischen Satz gebrauchsfertiger Tags für Ihren Code.

Andere Beispiele für das dynamische Hinzufügen benutzerdefinierter 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 an die Kategorie anpassen, in der sie abgelegt sind. Dazu können Sie die Klasse body verwenden

Zunächst müssen Sie die Kategorienamen als CSS-Klassen auf den Seiten der einzelnen Beiträge hinzufügen. Fügen Sie dazu den folgenden Code in die Datei functions.php Ihres Themes oder in ein Code-Snippets-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 in Ihre Body-Klasse für einzelne Beitragsseiten ein. Sie können dann CSS-Klassen verwenden, um sie nach Belieben zu gestalten.

Hinzufügen eines Seiten-Slugs zur Body-Klasse

Fügen Sie den folgenden Code in die Datei functions.php 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' );

Auch hier empfehlen wir, diesen Code in WordPress mit einem Code-Snippets-Plugin wie WPCode einzufügen. Auf diese Weise müssen Sie nicht befürchten, dass Ihre Website kaputt geht.

Installieren und aktivieren Sie zunächst das kostenlose WPCode-Plugin. 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 auf die Schaltfläche „Snippet verwenden“ unterhalb der Option „Eigenen Code hinzufügen (neues Snippet)“.

Add a new custom code snippet in WPCode

Fügen Sie dann einfach den obigen Code in das Feld „Codevorschau“ ein und wählen Sie im Dropdown-Menü „PHP Snippet“ als Codetyp aus.

Paste code snippet into WPCode

Schalten Sie abschließend den Schalter von „Inaktiv“ auf „Aktiv“ um und klicken Sie auf die Schaltfläche „Snippet speichern“.

Activate and save your custom code snippet

Browser-Erkennung und Browser-spezifische Body-Klassen

Manchmal kann es vorkommen, dass Ihr Thema zusätzliche CSS für einen bestimmten Browser benötigt.

Die gute Nachricht ist nun, dass WordPress den Browser beim Laden automatisch erkennt und diese Information als globale Variable zwischenlagert.

Sie müssen nur 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 Datei functions.php Ihres Themes oder in das Code Snippets 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 verwenden:

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

Wenn es sich um ein kleines Problem mit der Auffüllung oder dem Rand handelt, lässt es sich auf diese Weise recht einfach beheben.

Es gibt sicherlich noch viele weitere Szenarien, in denen die Verwendung der body_class-Funktion Sie vor dem Schreiben langer Codezeilen bewahren kann. Wenn Sie zum Beispiel ein Theme-Framework wie Genesis verwenden, können Sie damit benutzerdefinierte Klassen in Ihr Child-Theme einfügen.

Mit der Funktion body_class können Sie CSS-Klassen für Seitenlayouts über die gesamte Breite, Seitenleisteninhalte, Kopf- und Fußzeilen usw. hinzufügen.

Wir hoffen, dass dieser Artikel Ihnen geholfen hat, zu lernen, wie Sie die WordPress Body-Klasse in Ihren Themes verwenden können. Vielleicht interessiert Sie auch unser Artikel darüber, wie Sie jeden WordPress-Beitrag anders gestalten können, und unser Vergleich der besten WordPress-Page-Builder-Plugins.

Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, dass wir möglicherweise eine Provision verdienen, wenn Sie auf einige unserer Links klicken. Mehr dazu erfahren Sie unter Wie WPBeginner finanziert wird , warum das wichtig ist und wie Sie uns unterstützen können. Hier finden Sie unseren redaktionellen Prozess .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Das ultimative WordPress Toolkit

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

Reader Interactions

14 KommentareEine Antwort hinterlassen

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Corrinda says

    Thank you after reading a number of articles regarding the body-class this is the one the finally sunk in.

    Got it working on individual pages and on category pages this is great. The use cases are what made the difference for me.

  3. Yolanda says

    Great tips! I’m trying to figure out how to add the menu class (the one you can enter in the admin) to body_class:

    [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. Seth Burleigh says

    Great tips. I“m trying to do this, and when inserting „page-template page-template-(template file name)“ into my header file such that I have:

    <body >

    And I then modify my CSS to include: .page-template-home_corechella

    I am left with a completely blank page. Nothing. What am I doing wrong? Thanks!

  5. Rasha says

    i have news page that get posts using category.php , i want to give it specific class so i can make the content wide and without the sidebar , how i can do that ?

  6. Vajrasar says

    Indeed a good writeup and very informative. Just a question – For example if I add Browser Specific Body Class today and after few days I need to apply Page Class in Body Slug. Then will the settings/css that I did with Browser Specific Body class will get ruined or not?

Eine Antwort hinterlassen

Danke, dass du einen Kommentar hinterlassen möchtest. Bitte beachte, dass alle Kommentare nach unseren kommentarpolitik moderiert werden und deine E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwende KEINE Schlüsselwörter im Namensfeld. Lass uns ein persönliches und sinnvolles Gespräch führen.