<body <?php body_class(b2_get_option('template_top','top_type')); ?>>
wordpress的body_class()
函数
顾名思义,这个函数根据不同的页面类型为body
标签生成class选择器
,从而让设计人员可以各方便灵活的控制不同页面中的各个元素。这个对于wp老鸟应该都不陌生了。
b2_get_option('template_top','top_type')
主要用来从 WordPress 博客数据库wp_options
表中取得我们想要的字段内容的一个函数
这句话解读就是:获取wp_options
表中名为template_top
的值,如果没有则返回top_type
<?php do_action('b2_header'); ?>
do_action()
函数是WordPress的内部函数,作用是创建一个行为钩子,它没有返回值,单纯的就是在特定的地方执行插件或者主题开发者挂载的函数,一般存在于某个特殊的节点或者事件上(比如开始加载主题模板的时候或者发布一篇文章的时候),该函数让wordpress变得更加强大,扩展性更加好。
这句代码解读意思就是执行挂载到b2_header
这个动作钩子上的所有函数。
do_action()
在使用时一般配合dd_action()
函数来使用
那么我们想知道执行挂载了什么就来反推。在7b2文件内搜索dd_action('b2_header'
,得到结果:modules>templates>header.php
add_action('b2_header',array($this,'header_cache'),3);
这句话解读就是把这个创建数组array($this,'header_cache')
挂载到b2_header
public function header_cache(){
// if(B2_OPEN_CACHE){
// $html = wp_cache_get('b2_header_html','b2_template');
// if($html === false){
// $html = self::header();
// wp_cache_set('b2_header_html', $html, 'b2_template', WEEK_IN_SECONDS );
// }
// }else{
// $html = self::header();
// }
// echo $html;
// unset($html);
echo self::header();
}
就一句echo self::header();
自己?函数?那就在“自己”这个页找!再往下看找到header()这个函数
public static function header(){
$type = b2_get_option('template_top','top_type');
$html = self::header_style();
if($type === 'social-top'){
$arg = array(
'theme_location' => 'ym-menu',
'container_id'=>'ym-menu',
'container_class'=> 'ym-menu',
'echo' => FALSE
);
$menu = wp_nav_menu($arg);
$sub_menu = self::sub_menu();
$html .= '
<div class="site-header mg-b social-top '.($sub_menu ? '' : 'social-no-sub').'"><div class="site-header-in">';
$html .= '<div class="header-banner top-style">
<div class="header-banner-content wrapper">
<div class="header-banner-left">
'.self::logo().'
'.$menu.'
</div>
<div class="header-banner-right">
'.self::search_form().'
'.self::user().'
<div class="mobile-show top-style-menu">
<div id="mobile-menu-button" class="menu-icon" onclick="mobileMenu.showAc()">
<div class="line-1"></div>
<div class="line-2"></div>
<div class="line-3"></div>
</div>
</div>
</div>
</div>
</div>';
$html .= $sub_menu;
$html .= '</div></div>';
}else{
$html .= '<div class="site-header mg-b"><div class="site-header-in">';
$html .= self::header_top();
$html .= '<div class="header '.$type.'">
<div class="top-style">
<div class="top-style-blur"></div>
<div class="wrapper">
'.self::menu_icon().'
'.self::logo().'
'.self::user().'
'.self::menu().'
</div>
</div>
</div>';
$html .= '</div></div>';
}
return apply_filters('b2_top_html',$html, $type);
}
原来这里是挂载的顶部代码,ok那么想改什么就在这里去改吧。不要给我面子。这里我会再写一篇细细的介绍,我们继续往下看
<?php do_action('b2_content_before'); ?>
又是一个do_action
,那我们老办法去找源头add_action('b2_content_before'
emmm…最后发现啥也没有。
好了关于header.php就介绍到这里了,咱们下期继续一同解读,也欢迎大佬们指正。
一起交流学习
不错不错
不错不错
虽然没看懂,但挺好的
看不懂
看不懂
一起交流学习,主要是我现在没时间去写,过段时间继续更新