我想删除主题上的默认body类并添加一个新类。
我使用此代码执行以下操作:
//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;
}
代码之所以有效,是因为两个默认类消失,新类出现,但当我在中创建“my\\u custom\\u class”时
style.css
, CSS不起作用。
我尝试修改边距,例如,我使用以下代码:
.my_custom_class {
margin-top: 350px !important;
}
但现场没有变化。
最合适的回答,由SO网友:Dave Romsey 整理而成
这个my_custom_class()
函数正在使用类名my-custom-class
, 但是CSS的目标是类my_custom_class
. 这两个字符串应该完全相同:
.my-custom-class {
margin-top: 350px !important;
}
此外,处理所有
body_class
在单个回调函数中填充:
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;
}