欢迎来到路由器窝!

wordpress不同分类调用不同模板

浏览次数:

作者: 路由器窝

信息来源:

更新日期: 2020-05-17 11:40

文章简介

用wordpress做网站特别是企业网站建设的时候,多个分类的内容不同需要显示的页面也不一样,比如有些分类显示的是产品缩略图,有些显示的是公司新闻公告等,此时需要不同的分类模板。 虽然wordpress默认只有一个通用的分类目录模板(archive.ph

  • 正文开始
  • 相关文章

用wordpress做网站特别是企业网站建设的时候,多个分类的内容不同需要显示的页面也不一样,比如有些分类显示的是产品缩略图,有些显示的是公司新闻公告等,此时需要不同的分类模板。

 

虽然wordpress默认只有一个通用的分类目录模板(archive.php),但是可以通过函数代码实现不同的分类调用不同的模板。

实现wordpress不同分类调用不同模板的方法:

第一步在模板函数里添加获取子分类的函数代码
 

//获取并输入某个分类的子分类
function post_is_in_descendant_category( $cats, $_post = null )
{
  foreach ( (array) $cats as $cat ) {
    // get_term_children() accepts integer ID only
    $descendants = get_term_children( (int) $cat, 'category');
    if ( $descendants && in_category( $descendants, $_post ) )
      return true;
  }
  return false;
}

//调用子分类、
function get_category_root_id($cat)
{
$this_category = get_category($cat); // 取得当前分类
while($this_category->category_parent) // 若当前分类有上级分类时,循环
{
$this_category = get_category($this_category->category_parent); // 将当前分类设为上级分类(往上爬)
}
return $this_category->term_id; // 返回根分类的id号
}

在当前wordpress主题的category.php文件中(没有就新建一个),添加以下判断代码:
<?php
$post = $wp_query->post; 

if (is_category(array("1","2"))){
include(TEMPLATEPATH . '/category-pro.php'); 
}
elseif ( is_category('3') || post_is_in_descendant_category(3) ){ 
include(TEMPLATEPATH . '/category-news.php'); 
}
else { 
include(TEMPLATEPATH . '/category-wz.php'); 
}  ?>

该判断函数表示:判断分类id是否为‘1’,2,如果是,则调用category-a.php模板,如果分类id是3则调用category-b.php模板,如果以上两者都不是则调用category-all.php模板.

转载请注明:Wordpress» wordpress不同分类调用不同模板

标签:
上一页:WordPress 无插件 纯代码实现分页导航
下一页:wordpress常用函数
最近更新作品
acf判断
更新时间:2024-04-17

891人已经看过了!

指定栏目ID另类调用配合acf
更新时间:2024-04-16

857人已经看过了!

word press 自定义文章类型制作留言功能
更新时间:2024-03-10

985人已经看过了!

php if  ifelse 循环
更新时间:2024-03-09

576人已经看过了!

栏目模板选择插件栏目模板
更新时间:2024-03-08

738人已经看过了!

contact-form-7历史版本WP SMTP配合使用
更新时间:2024-03-08

809人已经看过了!

WordPress True / False功能参数
更新时间:2024-03-08

929人已经看过了!

wordpress调用指定分类置顶文章
更新时间:2024-03-07

519人已经看过了!

WordPress父分类调用子分类名称和文章列表
更新时间:2024-03-07

520人已经看过了!