在制作主题中,最常被问到的问题是,网站有好几个栏目,不同的栏目的栏目页和内容页如何去使用不同的模板。答案是模板路由。
所谓模板路由是指在通用模板页通过条件组合,加载不同的模板。
模板路由通常使用三个函数,is_category, in_category和get_template_part,先说一下这三个函数的用法:
is_category($param): 判断当前页面是不是栏目页,如果参数为栏目的栏目名,slug或栏目ID,也可以通过数组指定多个栏目。
in_category($parm): 判断当前文章是否属于指定的栏目,参数必填,可以为栏目名,slug,或者栏目ID,也可以通过数组指定多个栏目。
get_template_part: 在通用模板标签教程中做了介绍,它接收一到两个参数,用于加载模板。
栏目页的示例用法
假设栏目ID为1和2的使用category-product.php模版,栏目ID为3的使用category-blog.php模版,其他栏目使用category-common.php模版,那么category.php代码可以如下:
<?php if(is_catgory(array(1,2))){ get_template_part('category', 'product'); }elseif(is_category(3)){ get_template_part('category', 'blog'); }else{ get_template_part('category', 'common'); }
文章页的示例用法
假设栏目ID为1和2的使用single-product.php模版,栏目ID为3的使用single-blog.php模版,其他栏目使用single-common.php模版,那么single.php代码可以如下:
<?ph if(in_catgory(array(1,2))){ get_template_part('single', 'product'); }elseif(in_category(3)){ get_template_part('single', 'blog'); }else{ get_template_part('single', 'common'); }
is_category是用来判断当前页面是否属于指定的栏目页,而in_category是用来判断当前文章是否属于指定的栏目页,在使用的时候不要弄错了。
单页的示例用法
假设单页ID为1的使用page-contact.php模版,单页ID为2的使用page-about.php模版,单页ID为3的使用page-service.php模版,其他单页使用page-common.php模版,那么page.php代码可以如下:
<?php $id = get_the_ID(); if($id == 1) get_template_part('page', 'contact'); elseif($id == 2) get_template_part('page', 'about'); elseif($id == 3) get_template_part('page', 'service'); else get_template_part('page', 'common'); }
你觉得文章内容怎么样
5 人参与,0 条评论