it-swarm.dev

Entfernen Sie die Klasse und fügen Sie sie mit der body_class () - Funktion hinzu

Ich möchte die Standardkörperklasse für das Thema entfernen und eine neue Klasse hinzufügen.

Ich benutze diesen Code, um dies zu tun:

//REMOVE / ADD HOME CLASS FROM BODY

add_filter('body_class', function (array $classes) {
    if (in_array('home', $classes)) {
      unset( $classes[array_search('home', $classes)] );
    }
  return $classes;
});

add_filter('body_class', function (array $classes) {
    if (in_array('blog', $classes)) {
      unset( $classes[array_search('blog', $classes)] );
    }
  return $classes;
});



add_action( 'body_class', 'my_custom_class');
function my_custom_class( $classes ) {
  $classes[] = 'my-custom-class';
  return $classes;
}

Der Code funktioniert, weil die beiden Standardklassen verschwinden und die neue Klasse angezeigt wird. Wenn ich jedoch "my_custom_class" in style.css erstelle, funktioniert das CSS nicht.

Ich habe versucht, den Rand zu ändern. Ich verwende diesen Code:

.my_custom_class {
    margin-top: 350px !important;
}

aber vor ort gibt es keine änderungen.

3
Crashy

Die Funktion my_custom_class() verwendet den Klassennamen my-custom-class, aber das CSS zielt auf die Klasse my_custom_class ab. Diese beiden Zeichenfolgen sollten genau gleich sein:

.my-custom-class {
    margin-top: 350px !important;
}

Außerdem wäre es ein wenig sauberer, alle body_class-Dinge in einer einzigen Rückruffunktion zu behandeln:

add_action( 'body_class', 'my_custom_class');
function my_custom_class( $classes ) {
    // Remove 'blog' class
    if (in_array('blog', $classes)) {
        unset( $classes[array_search('blog', $classes)] );
    }

    // Remove 'home' class
    if (in_array('home', $classes)) {
        unset( $classes[array_search('home', $classes)] );
    }

    // Add custom class
    $classes[] = 'my-custom-class';

    return $classes;
}
1
Dave Romsey