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″
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:
Finden Sie die relevante Funktion, indem Sie in einer Designdatei nachsehen, in diesem Fall header.php
Schlagen Sie diese Funktion im WordPress Codex nach (http://codex.wordpress.org/Function_Reference/body_class)
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
Guck mal hier > wordpress.stackexchange.com/questions/15850/…
– mcometa
20. Februar 2012 um 11:45 Uhr