wordpress自带有 body_class 这么一个函数,可以快捷的给body添加内置的class名;而我们在开发wordpress主题时,会遇到需要给body添加额外的class,出现这种情况的时候,就不能直接通过body_class
这个函数来直接添加了。那该怎么办呢?
其实我们可以通过add_filter
来给body_class
挂载一些内容:
/*body添加class*/
function wd_custom_body_class($classes){
if(is_home() && emptyempty(wd_get_slider_background())){
array_push($classes, "top-bar-visible");
}
if(is_page() || is_single()){
global $post;
if(get_post_meta($post->ID, 'postheader', true) == "0" || get_post_meta($post->ID, 'postheader', true)== ""){
array_push($classes, "top-bar-visible");
}
if(get_post_meta($post->ID, 'pagelayout', true) == "0"){
array_push($classes, "page-layout-right-sidebar");
}
if(get_post_meta($post->ID, 'pagelayout', true) == "1"){
array_push($classes, "page-layout-left-sidebar");
}
if(get_post_meta($post->ID, 'pagelayout', true) == "2"){
array_push($classes, "page-layout-full-width");
}
if(get_post_meta($post->ID, 'pagelayout', true) == ""){
if(av('layout_sidebar','0') == '1'){
array_push($classes, "page-layout-left-sidebar");
}else{
array_push($classes, "page-layout-right-sidebar");
}
}
}
if(is_home()){
if(av('layout_sidebar','0') == '1'){
array_push($classes, "page-layout-left-sidebar");
}else{
array_push($classes, "page-layout-right-sidebar");
}
}
return $classes;
}
add_filter('body_class', 'wd_custom_body_class');
从案例中,可以看到核心代码
array_push()
如果看不懂,可以直接百度。
转载链接: https://wpsenlin.com/wpkaifa/1044.html
原创文章版权属于作者,转载请注明出处。
- 有不懂的地方,欢迎加群(281907514)进行讨论!