模板,或者叫他们模块
对于主题的理解,个人觉得有点儿类似拼图,比如对于一个主题的首页,我们会先放上页眉部分,也就是“header”,然后放上页面主要内容,最后放上页脚部分,也就是“footer”。广义上看,整个页面就三块内内容:也就是页眉,内容,页脚。
内容部分是体现站点内容的关键,其构成因人而异,比较常见的构成形式是分成左右两栏,左侧呈现详细一些的内容,比如顶部放一个幻灯片,幻灯片下方再放上站点文章的简介与缩略图,因为内容更为详细,所以视觉占比更大一些,右侧呈现一些概括的内容,比如一个目录列表,或是一个最近发布文章的标题列表等等。
因为把页面理解成了拼图,所以更愿意以“模块调用”来理解模板调用函数,在不同的部分调用不同的模块,这类模块拼凑在一起,就展现出一个完整的页面。
模板调用函数们
get_header()、get_footer()与get_sidebar()函数是wordpress最常用的模板调用函数,几乎所有的wordrpess主题都会用到它们。get_header()函数的作用主要是从当前主题文件夹中调用header.php模板文件,也就是用来调网页的头文件。get_footer()函数是调用主题中的footer.php文件即网页底部。get_sidebar()函数是调用主题中的sidebar.php文件即侧边栏。
<?php get_header( $name ); ?>
以上模板调用函数都支持一个$name参数,参数留空的情况下,上面这行命令会调用主题文件夹中的header.php文件,而如果将命令修改一下:
<?php get_header('home'); ?>
此时则会优先调用主题中的header-home.php文件,通过修改函数的参数,我们可以为不同的页面指定不同的页眉,侧边栏,以及页脚。
好像还缺一块拼图
因为页眉页脚侧边栏(感觉像在念一串顺口溜)的文件名相对固定,所以wordpress直接定义了以上几个模板调用函数,但对于内容展现部分,不同的作者可能会有不同想法,从而衍生出不同的模块,对于这类模块,我们需要使用另一个函数“get_template_part()”:
<?php get_template_part( $slug, $name ); ?>
这个函数将文件的冠名权完全交给了用户,还记得“get_heaer()”调用什么文件吗?“header.php”文件,因为文件名相对固定,所以我们仅通过$name参数来切换它的后缀。“get_template_part()”多提供了一个$slug参数,我们可以利用它来指定文件名,比如我们需要调用一个“loop.php”的模板(块),我们可以这样写:
<?php get_template_part( 'loop' ); ?>
至于$name参数,我们在上一章节中已经熟悉了它的用途,用它可以改变文件的后缀,以实现同前缀不同后缀的文件名的区分调用,比如我们想调用“loop-content.php”模块,我们可以这样来调用:
<?php get_template_part( 'loop' , 'content'); ?>
根据不同的场景调用不同的模块
<?php
if ( is_home() )
get_header('home');
elseif ( is_category() )
get_header('cate');
elseif ( is_single() )
get_header('single');
endif;
?>
同过判断当前的页面场景,我们可以调用不同的页眉,来实现更丰富多变的页面展现效果。