欢迎来到《真香,30天做一套wordpress主题》系列文章,我们的目标是花上30天的时间闭关修炼,建立一套全新的wordpress主题,如果你看到的第一篇文章不是《基础框架搭建》,建议你关注我们(数字江湖异志录),从该系列的第一篇开始阅读。

我们将尽量保持文章的循序渐进和通俗易懂,请确保自己已经掌握了那一篇文章的全部内容时才选择跳过,不然可能会错过关键的信息噢~

这里我们假定你已经知晓了以下基础知识,这些基础知识对理解文章内容是至关重要的:

1. html/css/js基础

2. php基础

3. 如何使用wordpress

4. 如何搭建web环境

如果你已经知晓了以上基础知识,恭喜你,本系列的任何文章内容对你而言都没有什么难度。

公共底部

今天我们来完成公共底部,这是个非常重要的区域,并且也是非常省心的区域(基本写好了之后就是全局共用的)。

这里我们分两块区域,一是底部菜单,一是版权等信息,首先我们建立好dom结构:

       <footer>            <div class="footer-container">                <div class="footer-menus">                    <?php                        wp_nav_menu(                            array(                                'container'  => 'nav',                                'theme_location' => 'footer',                            )                        );                    ?>                </div>                <div class="footer-copyright">                    <p>                        copyright ©<?php echo date_i18n(_x( 'y', 'copyright date format'));?>                         <a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php echo bloginfo( 'name' ); ?></a>                             . all rights reserved.                    </p>                    <p>                        <a href="<?php echo esc_url( __( 'https://wordpress.org/') ); ?>"><?php _e( 'powered by wordpress'); ?></a>                          •                         <a href="#">theme freegeek</a>                    </p>                </div>            </div>        </footer>

这里需要注意wp_nav_menu里指定theme_location的位置为footer,这样会展示后台菜单设置里属于footer的菜单。

我们加上css描述,这里的css比较简单,就不贴出来了,直接看效果:

回到顶部

我们来做一个回到顶部的小按钮,增强页面体验:

            <div class="scrolltop-wrap">                <a class="go-top" href="#common-top">                    <span class="iconfont"></span>                </a>            </div>

这里我们把header的id设为common-top,这样点击这个锚链接的时候就会自动跳到首屏。

再让我们来看看css,这里利用postion:sticky巧妙地实现了这个按钮在首屏的隐藏:

          /* go top button */            .scrolltop-wrap {                box-sizing: border-box;                position: absolute;                top: 10.2083vw;                right: 0.4167vw;                bottom: 0;            }            .go-top {                width: 2.6042vw;                height: 2.6042vw;                font-size: 1.6667vw;                text-decoration: none;                background: #dbb302;                border-radius: 100%;                color: white;                justify-content: center;                align-items: center;                display: flex;                cursor: pointer;                                position: fixed;                position: -webkit-sticky;                position: sticky;                top: -5.2083vw;                transform: translatey(100vh);                overflow: hidden;                                animation: slide-up-fade-in ease 0.5s;                animation-iteration-count: 1;            }

看,我们完全不需要js也实现了,是不是非常优雅呢?

顶部菜单展开

还记得吗,我们在做顶部菜单,对于展开功能并没有实现,而只是临时屏蔽了相关的dom,现在我们就来实现菜单的展开。

首先把.sub-menu元素的visibility:hidden去掉,这样我们的多级菜单就全跑出来了:

这样可不行,我们需要调整为鼠标在一级菜单悬停时展示出来,这里主要利用li:hover来实现,最终实现效果如图:

这里也是直接用css完成,难度不大,主要是涉及到下拉菜单的显示和隐藏控制,看一下关键部位的css:

         .top-menus>nav>ul>li:hover>ul {                display: flex;            }            .top-menus>nav>ul>li>.sub-menu {                position: absolute;                left: 50%;                transform: translatex(-50%);                display: none;                flex-direction: column;                background: #2a2a2a;                z-index: 1;                overflow:hidden;                }

这里需要注意的是我们把菜单的z-index设为1,如果不设的话菜单可能会被同级元素遮挡。

这样我们的菜单展开部分也完成了。

小修复

也许你已经发现了,我们的侧边栏在主题自定义里看不到,会显示这样的字样:

这是怎么回事呢,其实我们少了wp_footer加载的官方js,但我们这是amp主题呀,加载自定义js会破坏amp格式,那怎么办呢?其实很简单:

        <?php             if (is_customize_preview()) {                wp_footer();             }        ?>

判断是否在主题预览里,如果是的话加载官方的wp_footer。

总结和预告

今天我们实现了公共底部,后期我们可以把这些公共组件统统抽离成独立的文件, 然后我们制作出了跳转到顶部的小按钮,还实现了顶部菜单的二级展开,顺便修复了一个小bug,有一定的难度,但只要细心研究,都可以解决。

明天我们将到达一个全新的领域——平板、手机适配,我们可以使用wordpress的自定义主题预览功能快速地看到我们调整后的效果,我们会运用媒体查询器控制页面元素,敬请期待吧。

如果你喜欢这个系列的文章,赶快关注我们(数字江湖异志录)吧,不要错过后续的更多干货噢。