哆麦CMS不同的栏目、文章页、单页如何指定不同模版?

2025年07月18日5

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

所谓模板路由是指在通用模板页通过条件组合,加载不同的模板。

模板路由通常使用三个函数,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');
}

点赞0

喜欢这篇文章?打赏一下作者吧

  • 支付宝

    支付宝二维码

  • 微信

    微信二维码

你觉得文章内容怎么样

您的评论会在审核后被公开。

5 人参与,0 条评论

TOP