这里指的是默认文章类型的模板(single.php,category.php)

应用场景:

默认文章默认有2个大类(新闻资讯、游戏资料)

新闻资讯下的所有子分类调用“新闻资讯列表模板,新闻内容模板”

游戏资料下的所有子分类调用“游戏资料列表模板,游戏资料内容模板”

文章列表页category.php

在category.php做判断

如果该子分类属于“新闻资讯根分类”,则调用新闻资讯列表模板

如果该子分类属于“游戏资料根分类”,则调用游戏资料列表模板

这里的关键是“判断子分类是否属于根分类的函数”

Wordpress没有默认的函数,需要如下代码:

//函数cate_is_in_descendant_category( $cats )
//参数$cats一个分类ID,多个分类用ID数组 if ( ! function_exists( "post_is_is_descendant_category" ) ) {
function cate_is_in_descendant_category( $cats ) {
foreach ( (array) $cats as $cat ) {
// get_term_children() accepts integer ID only
$descendants = get_term_children( (int) $cat, "category" );
if ( $descendants && is_category( $descendants ) )
return true;
}
return false;
}
}

is_category( $category )
参数:$category

(混合) (可选) 分类 ID, 分类标题 Title, 分类短标记 Slug 或者 ID数组, Title数组, slugs数组.
默认: None

实现操作

首先,复制两个category.php文件分别取名为“category1.php” 和“category2.php”。
然后,把原先的category.php文件里面的内容全部删除,并用下面的代码进行替换:

<?php
if ( cate_is_in_descendant_category( 2 ) ) {
include(TEMPLATEPATH . '/category1.php');
} else {
include(TEMPLATEPATH . '/category2.php');
}
?>

意思是:检查分类页ID,如果该ID属于分类ID9,则显示category1.php,如果不是,则显示category2.php。

文章列表页category.php

在single.php做判断

这里的关键是“判断子分类下的文章是否属于根分类的函数”

Wordpress没有默认的函数,需要如下代码:

if ( ! function_exists( "post_is_in_descendant_category" ) ) {
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;
}
}

in_category(  $category , $_post )
参数1:$category

(混合的)(必选的)一个或多个被指定分类ID,分类别名或slug,或一个数组。

默认: 无

参数2:$_post

(混合的)(可选的)文章,默认为在主循环内的当前文章或在主查询中的文章。

默认: 无

实现操作

首先,复制两个single.php文件分别取名为“single1.php” 和“single2.php”。
然后,把原先的single.php文件里面的内容全部删除,并用下面的代码进行替换:

<?php
if ( cate_is_in_descendant_category( 2 ) ) {
include(TEMPLATEPATH . '/single1.php');
} else {
include(TEMPLATEPATH . '/single2.php');
}
?>

意思是:检查日志,如果日志属于分类ID9,则显示single1.php,如果不是,则显示single2.php。

B:Wordpress不同分类调用不同的模板的更多相关文章

  1. wordpress不同分类调用不同的模板

    今天网友问ytkah:wordpress不同分类如何调用不同的模板.我们知道in_category() 函数可以通过分类别名或ID判断当前文章所属的分类,而且可以直接在循环(Loop)内部和外部使用. ...

  2. WordPress不同分类使用不同的文章模板

    倡萌昨天分享的 Custom Post Template 和 Single Post Template 可以让你自定义每篇文章的文章模板,今天来说说WordPress不同分类使用不同的文章模板. 方法 ...

  3. 关于wordpress其他分类页面正常单一分类页面白屏的解决

    关于wordpress其他分类页面正常单一分类页面白屏的解决 朋友的一个站,10个分类页面,9个正常,其中一个打开白屏或者500错误 下载 nginx的日志文件查看 收到如下提示: ecv() fai ...

  4. 3.(基础)tornado的接口调用顺序与模板

    上一节介绍了tornado的请求与响应,这一节介绍tornado的接口调用顺序和模板 首先都有哪些接口呢?作用是什么呢?并且都有的时候,执行顺序是怎么样的呢? 接口 1.initialize,表示初始 ...

  5. ecshop不同的文章分类使用不同的模板的方法

    ecshop文章模板做的太简单,页面很丑,怎么才能实现不同的文章使用不同的模板呢,方法是有的,就是没有shopex那么方便,但还可以实现,只要能用就行. 1.打开article_cat.php文件,在 ...

  6. WordPress主题开发:按分类调用文章

    调用catid为2的分类下的文章,就是后台分类链接的tag_ID <?php $cat_query = new WP_Query(array( 'cat' => '2' )); ?> ...

  7. 如何让ECSHOP不同的分类调用不同模板方法

    如何给ecshop商品分类,显示不同的模板的话.可以通过不同的分类ID来取得不同模板.我们可以通过分类ID来判断,比如分类为1的,调用cat1.dwt.分类为2的,调用cat2.dwt,我们在cate ...

  8. wordpress主题制作常用基本的模板及说明

    style.css : CSS(样式表)文件,一般包括主题声明和通用css样式代码 index.php : 主页模板,一般用来做网站的首页 header.php : Header模板,一般是所有页面的 ...

  9. ecshop不同文章分类调用不同文章分类模板

    根据需要,不同的文章分类会有不一样的页面风格.也就是说根据文章分类ID来判断,输出不同的文章分类模板. 重点就是文章分类的ID. 打开:article_cat.php $smarty->disp ...

随机推荐

  1. Java Keytools 证书转换成Openssl 的PEM 文件或keytools 导出私钥文件

    上一遍又说到Godaddy 生请证书流程与操作: 现因使用Incapsula 防护使用到https,在添加网站时需要自定义证书,其中需要上传私钥信息,因公钥是能过keytool 生成所以需要导出私钥信 ...

  2. Fiddler进行模拟Post提交数据,总为null解决方式

    Fiddler模拟post提交时总是为空,解决办法 如果是表单提交则要在header加上 ContentType:application/x-www-form-urlencoded 如果是要post提 ...

  3. find

    语法:find [路径] [参数] [action] -name filename,查找名为filename的文件 -iname filename,查找名为filename的文件,但是不区分大小写 - ...

  4. 修改 EF的默认连接工厂为 Sql Server 而不是LocalDb

      当你用EF6创建一个新项目,不知你是否注意到默认的连接字符串使用了LocalDb而不是SQLServer.但你如果想把默认连接改用SQLSErver而不是LocalDb.这个其实很简单:只需修改下 ...

  5. java报表工具FineReport常用函数的用法总结(文本和日期函数)

    文本函数 CHAR CHAR(number):根据指定数字返回对应的字符.CHAR函数可将计算机其他类型的数字代码转换为字符. Number:用于指定字符的数字,介于1Number:用于指定字符的数字 ...

  6. spring mvc 快速入门

    ---------- 转自尚学堂 高淇 --------- Spring  MVC 背景介绍 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC ...

  7. POJ1961[KMP 失配函数]

    Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 16776   Accepted: 8077 Descripti ...

  8. Web.xml中设置Servlet和Filter时的url-pattern匹配规则

    一.servlet容器对url的匹配过程: 当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://loca ...

  9. python脚步管理工具supervisor=3.3.0的安装、使用。基于linux系统。

    一.安装相关包 sudo apt-get install python-pip       #python的安装包的工具 sudo apt-get install python-dev       # ...

  10. React业务实践

    总结自:http://reactjs.cn/react/docs/thinking-in-react-zh-CN.html 当接到一个需求时,如何用react来实现? 以下几个步骤做参考. 第一步:把 ...