首页 > 常见问题 > 模板路由

不同的栏目如何指定不同模版?

在制作主题中,最常被问到的问题是,网站有好几个栏目,不同的栏目的栏目页和内容页如何去使用不同的模板。答案是模板路由

所谓模板路由是指在通用模板页通过条件组合,加载不同的模板。模板路由通常使用三个函数,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是用来判断当前文章是否属于指定的栏目页,在使用的时候不要弄错了。

上一篇: 哆麦CMS忘记密码怎么办? 下一篇: 哆麦CMS留言表单如何支持Ajax请求
62人阅读过这篇文章,1人喜欢。

发表评论

评论列表