Sidebar auf der rechten Seite mit Divi 4
Ich bin mir echt nicht sicher, ob ich diesen Hack hier gerne veröffentliche – angesichts dessen, dass vermutlich viele das gleiche Problem haben werden, tue ich es dennoch. Jedenfalls läuft ja die Diamond Lotus-Website unter Wordpress (was ich mir so nicht ausgesucht hätte) mit dem Theme Divi von Elegant Themes. Auch das hätte ich mir nicht ausgesucht, weil es zwar einfach zu bedienen ist, aber erwartungsgemäß stark aufgeblähten HTML- und CSS-Code produziert.
Nun ist es so wie es ist, wir benutzen das & haben letzten März auch ein Blog auf unserer Seite gestartet. Damit dessen Beiträge sowie das Archiv auf jeder Seite verfügbar ist, habe ich eine Sidebar mit den entsprechenden Widgets eingerichtet. Damit diese nun auch tatsächlich auf allen Seiten (außer denen, wo es anders eingestellt ist) in einer rechten Spalte angezeigt wird, musste ich auf einen Hack von Sudari Webdesign zurückgreifen.
Der funktionierte wunderbar – bis zum Upgrade auf Divi 4. Durch den wurden die Inhalte der Sidebar nicht mehr an der Seite, sondern ganz unten am Ende der Seite angezeigt.
Es hat mich erst mal eine intensive Suche gekostet, um herauszufinden was sich da beim Upgrade verändert hat: Das body
-Tag bekommt, obwohl ich im Backend et_right_sidebar
ausgewählt habe, die CSS-Klasse et_no_sidebar
zugewiesen. Diese bewirkt genau das, was ich oben beschrieben habe: die “Side"bar wird unten angehängt.
Nachdem ich das herausgefunden hatte, stellte sich die nächste Frage: An welcher Stelle kann ich das ändern? Dabei habe ich den Wordpress-Hook body_class
kennen gelernt, der mir entscheidend weitergeholfen hat.
Das Problem löst sich folglich, indem ich diesen Code in die functions.php
des Child Themes einfüge:
<code class="language-php">
add_filter( 'body_class', function( $classes ) {
foreach($classes as $key => $class) {
if( $class == 'et_no_sidebar' ){
$classes[$key]='et_right_sidebar';
}
}
return $classes;
}, 1000);
</code>
Parallel dazu habe ich aber mal den Elegant Themes-Support angeschrieben, es handelt sich dabei nämlich offensichtlich um einen neuen Bug. Bei meinen Versuchen habe ich nachgeprüft, dass die Variable _et_pb_page_layout
nämlich sehr wohl den Wert et_right_sidebar
hat. Damit sollte die CSS-Klasse eigentlich übereinstimmen.
Nachtrag vom 14.01.: Der Support war bisher wenig hilfreich, hat erst mal Drittanbieter-Plugins als Ursache verdächtigt…