chris burton
¿Cómo podría eliminar clases del elemento del cuerpo en WordPress?
Predeterminado: body class=”page page-id-7 page-template-default login”
Lo que estoy buscando: body class=”page-id-7″
En la publicación: body class=”postid-40″
Así es como encuentras algo como esto:
-
Encuentre la función relevante buscando en un archivo de tema, en este caso header.php
-
Busque esta función en el Codex de WordPress (http://codex.wordpress.org/Function_Reference/body_class)
-
¿Hay algún ejemplo que se parezca a lo que quiero hacer? Sí:
// Agregar clase CSS específica por filtro add_filter(‘body_class’,’my_class_names’); function my_class_names($classes) { // agrega ‘class-name’ a la matriz $classes $classes[] = ‘nombre-clase’; // devuelve la matriz de $clases devuelve $clases; }
Básicamente, para eliminar todas las clases, simplemente agregue esto a functions.php:
add_filter('body_class','my_class_names');
function my_class_names($classes) {
return array();
}
t 4. Pero quiero mantener la identificación de la página y la identificación de la publicación. ¿Cómo puedo hacer eso? Debido a que no sabe en qué índice de la matriz puede encontrar esta información, y buscar a través de la matriz es poco convincente, primero debe vaciar la matriz como lo hicimos anteriormente y luego agregar las cosas que realmente desea. ¿Cómo obtiene la información correcta, es decir, la identificación de la página y la identificación de la publicación? Este es el paso cinco.
(5) En la parte inferior de la página del códice encontrará un enlace al código fuente. Este es el enlace que encontrarás: http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/post-template.php Si observa la función, verá que usa una función que simplemente llena la misma matriz que podemos manipular con el filtro mencionado anteriormente. Mirando cómo lo hacen, tú también puedes hacerlo.
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;
}
Esperemos que este código funcione. Si no es así, trate de averiguar qué está mal siguiendo los pasos anteriores. Espero haber ayudado al menos un poco 🙂
-
Esto funciona perfectamente. Gracias por explicar detalladamente, te lo agradezco.
– Chris Burton
17/10/2011 a las 21:25
-
Buena esa. Mirando a este realmente ayudó Gracias por la explicación detallada.
– lowtechsun
26 de marzo de 2018 a las 23:32
código de trabajo actual para eliminar y agregar una clase
//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' ) );
} );
-
No funciona cuando se eliminan varias clases solo 1 clase
– michelle
14 de junio a las 13:22
Mira aquí > wordpress.stackexchange.com/questions/15850/…
– mcometa
20 de febrero de 2012 a las 11:45