用7b2来学习,解读header.php

<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就介绍到这里了,咱们下期继续一同解读,也欢迎大佬们指正。

文章最后更新于 2021-03-08

为TA充电
b2美化

文章作者设置认证图标

2021-3-5 12:46:46

b2美化主题发现

关于圈子的那点事

2021-3-13 7:28:30

2 条回复 A文章作者
  1. H5博客

    下面的代码能看出来好像是输出顶部菜单啥的,但是我一加代码就直接错位,或者报错了,整的我头疼

    • 助力北漂

      一起交流学习,主要是我现在没时间去写,过段时间继续更新

解锁会员资源

开通会员

解锁海量优质VIP资源

立即开通

个人中心
购物车
优惠劵
有新私信 私信列表
搜索