不同的栏目如何指定不同模版?
在制作主题中,最常被问到的问题是,网站有好几个栏目,不同的栏目的栏目页和内容页如何去使用不同的模板。答案是模板路由。
所谓模板路由是指在通用模板页通过条件组合,加载不同的模板。模板路由通常使用三个函数,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代码可以如下:
<?php 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是用来判断当前文章是否属于指定的栏目页,在使用的时候不要弄错了。
评论列表