Entfernen Sie WordPress-Textklassen

Lesezeit: 2 Minuten

Benutzer-Avatar
Chris Burton

Wie kann ich Klassen aus dem body-Element in WordPress entfernen?

Standard: body class=”page page-id-7 page-template-default log-in”


Was ich suche: body class=”page-id-7″

Auf Posts: body class=”postid-40″

So finden Sie so etwas heraus:

  1. Finden Sie die relevante Funktion, indem Sie in einer Designdatei nachsehen, in diesem Fall header.php

  2. Schlagen Sie diese Funktion im WordPress Codex nach (http://codex.wordpress.org/Function_Reference/body_class)

  3. Gibt es Beispiele, die dem ähneln, was ich tun möchte? Ja:

    // Spezifische CSS-Klasse durch Filter hinzufügen add_filter(‘body_class’,’my_class_names’); function my_class_names($classes) { // fügt ‘class-name’ zum $classes-Array hinzu $classes[] = ‘Klassenname’; // das Array $classes zurückgeben return $classes; }

Um also alle Klassen zu entfernen, fügen Sie einfach Folgendes zu functions.php hinzu:

add_filter('body_class','my_class_names');
function my_class_names($classes) {
    return array();
}

t 4. Aber ich möchte die Seiten-ID und die Beitrags-ID behalten – wie kann ich das tun? Da Sie nicht wissen, auf welchem ​​Index im Array Sie diese Informationen finden können, und das Durchsuchen des Arrays lahm ist, müssen Sie zuerst das Array leeren, wie wir es oben getan haben, und dann die Dinge hinzufügen, die Sie wirklich wollen. Wie erhalten Sie die richtigen Informationen, dh Seiten-ID und Beitrags-ID? Dies ist Schritt fünf.

(5) Unten auf der Codex-Seite finden Sie einen Link zum Quellcode. Dies ist der Link, den Sie finden: http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/post-template.php Wenn Sie sich die Funktion ansehen, sehen Sie, dass sie eine Funktion verwendet, die einfach dasselbe Array füllt, das wir mit dem oben genannten Filter manipulieren können. Indem Sie sehen, wie sie es tun, können Sie es auch tun.

add_filter('body_class','my_class_names');
function my_class_names($classes) {
    global $wp_query;

    $arr = array();

    if(is_page()) {
    $page_id = $wp_query->get_queried_object_id();
    $arr[] = 'page-id-' . $page_id;
    }

    if(is_single()) {
    $post_id = $wp_query->get_queried_object_id();
    $arr[] = 'postid-' . $post_id;
    }

    return $arr;
}

Hoffentlich funktioniert dieser Code. Wenn dies nicht der Fall ist, versuchen Sie herauszufinden, was falsch ist, indem Sie die obigen Schritte ausführen. Ich hoffe ich konnte wenigstens ein bisschen helfen 🙂

  • Das funktioniert perfekt. Vielen Dank für die ausführliche Erklärung, ich weiß es zu schätzen.

    – Chris Burton

    17. Oktober 2011 um 21:25 Uhr

  • Schön. Anschauen Dies wirklich geholfen. Vielen Dank für die ausführliche Erklärung.

    – Lowtech-Sonne

    26. März 2018 um 23:32 Uhr

derzeit funktionierender Code zum Entfernen und Hinzufügen einer Klasse

//remove body class

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

// Add specific CSS class by body.
 add_filter( 'body_class', function( $classes ) {
    return array_merge( $classes, array( 'class-name' ) );
} );

  • Funktioniert nicht, wenn mehrere Klassen nur 1 Klasse entfernt werden

    – Michèle

    14. Juni um 13:22 Uhr

1373350cookie-checkEntfernen Sie WordPress-Textklassen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy