WordPress Body um eine weitere CSS Klasse mit PHP erweitern.

Marc Wag­ner

März 16, 2021

2 min read|

Manch­mal ist es hilf­reich, einer Sei­te abhän­gig von einem Zustand, eine zusätz­li­che Klas­se hin­zu­zu­fü­gen. Dank des Fil­ter­sys­tems von Word­Press ist das Hin­zu­fü­gen wei­te­rer Klas­sen kin­der­leicht.

Öff­ne zunächst die functions.php die sich im Child-The­­me dei­ner Word­Press Instanz befin­det.

Mehrere CSS Klassen im Body von WordPress per Filter hinzufügen #

Über den Fil­ter body_class kannst du die CSS Klas­sen die im Body hin­ter­legt wer­den erwei­tern. Dabei kannst du belie­big vie­le Klas­sen hin­zu­fü­gen.

add_filter('body_class', 'addCustomClasses', 10, 1);

/**
 * Individuelle CSS Klassen zum Body hinzufügen
 * @param array $classes
 * @return array
 */
function addCustomClasses($classes){
   $customClasses = array('css-klasse-1', 'css-klasse-2');
   return array_merge($classes,$customClasses);
}

Objektorientierte Methode zum Hinzufügen mehrerer CSS Klassen im Body von WordPress per Filter

Das gan­ze lässt sich natür­lich auch Objekt­ori­en­tiert spie­lend leicht umset­zen.

/**
 * Klasse zum hinzufügen weiterer CSS Klassen zum Body
 */
class CustomizeBody{
     /**
      * Konstruktor
      */
     public function __construct(){
         add_filter('body_class', array($this, 'addClasses'));  
     }
     
     /**
      * CSS Klassen hinzufügen
      * @param string $classes
      * @return array
      */
     public function addClasses($classes){
         $customClasses = array('css-klasse-1', 'css-klasse-2');
         return array_merge($classes,$customClasses);
     }
}

new CustomizeBody();

Hinzufügen von CSS Klassen im Body von WordPress mit einer Bedingung

Du kannst natür­lich die Funk­ti­on nach Belie­ben erwei­tern und auch Bedin­gun­gen inte­grie­ren. Zum Bei­spiel kannst du abhän­gig von der ID des Bei­trags eine CSS Klas­se zum Body hin­zu­fü­gen.

add_filter('body_class', 'addCustomClasses', 10, 1);

/**
 * Individuelle CSS Klassen zum Body hinzufügen
 * @param array $classes
 * @return array
 */
function addCustomClasses($classes){
   global $post;
   $customClasses = array('css-klasse-1', 'css-klasse-2');
   
   if(null != $post && $post->ID == 12345){
       $classes = array_merge($classes,$customClasses);
   }
   
   return $classes;
}

Eine CSS Klasse vom Body entfernen #

Natür­lich kannst du auch Klas­sen aus dem Body ent­fer­nen. Das ist zwar eher unüb­lich, aber den­noch kann es mal hilf­reich sein.

add_filter('body_class', 'removeClasses', 10, 1);

/**
 * Individuelle CSS Klassen vom Body entfernen
 * @param array $classes
 * @return array
 */
function removeClasses($classes){
   $cssClassesToRemove = array('css-klasse-1', 'css-klasse-2');

   foreach($classes as $key => $value){
       if(in_array($value, $cssClassesToRremove)){
          unset($classes[$key]);
       }
   } 

   return $classes;
}

Das war’s schon! #

In die­sem klei­nen Tuto­ri­al haben wir uns ange­se­hen, wie man indi­vi­du­el­le CSS Klas­sen zum Body von Word­Press hin­zu­fügt.

Wir haben eben­so erfah­ren, wie das Hin­zu­fü­gen von Klas­sen­na­men mit einer Bedin­gung ver­knüpft wer­den kann. Zusätz­lich dazu, haben wir uns ange­se­hen wie der Fil­ter mit­tels objekt­ori­en­tier­ter Pro­gram­mie­rung umzu­set­zen wird.

Abschlie­ßend haben wir uns noch ange­se­hen, wie man meh­re­re Klas­sen aus dem Body ent­fer­nen kann für den Fall, das du die­se Funk­tio­na­li­tät tat­säch­lich benö­tigst.

88e86fcb816eff22bc917094df2862d8dd5c0e978b333e6dd5f36f808990c261 96

Arti­kel von:

Marc Wag­ner

Hal­lo, Marc hier. Ich bin der Grün­der von Forge12 Inter­ac­ti­ve und bereits seit über 20 Jah­ren lei­den­schaft­lich dabei Web­sei­ten, Online­shops, Anwen­dun­gen und SaaS-Lösun­gen für Unter­neh­men zu ent­wi­ckeln. Vor der Grün­dung habe ich bereits in Bör­sen notier­ten Unter­neh­men gear­bei­tet und mir aller­lei Wis­sen ange­eig­net. Die­ses Wis­sen möch­te ich nun an mei­ne Kun­den wei­ter­ge­ben.

Hast du eine Fra­ge? Hin­ter­lass bit­te einen Kom­men­tar
  1. blank
    Karin Wen­ger Janu­ar 25, 2022 at 12:05 — Rep­ly

    Ich habe oft mit PHP-Pro­­jek­­ten / Auf­trä­gen zu tun, aber ich wag­te mich noch nie an Word­Press ran. Dort beschränkt sich mein Wis­sen auf instal­lie­ren von The­mes und Plug­ins; am PHP-Code hab ich bis­her noch nie was geän­dert. Dei­ne Anlei­tung ist aber so ein­fach geschrie­ben, dass ich es heu­te doch gewagt habe — und sie­he da: es funk­tio­niert. Vie­len Dank!