B:Wordpress不同分类调用不同的模板
这里指的是默认文章类型的模板(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不同分类调用不同的模板的更多相关文章
- wordpress不同分类调用不同的模板
今天网友问ytkah:wordpress不同分类如何调用不同的模板.我们知道in_category() 函数可以通过分类别名或ID判断当前文章所属的分类,而且可以直接在循环(Loop)内部和外部使用. ...
- WordPress不同分类使用不同的文章模板
倡萌昨天分享的 Custom Post Template 和 Single Post Template 可以让你自定义每篇文章的文章模板,今天来说说WordPress不同分类使用不同的文章模板. 方法 ...
- 关于wordpress其他分类页面正常单一分类页面白屏的解决
关于wordpress其他分类页面正常单一分类页面白屏的解决 朋友的一个站,10个分类页面,9个正常,其中一个打开白屏或者500错误 下载 nginx的日志文件查看 收到如下提示: ecv() fai ...
- 3.(基础)tornado的接口调用顺序与模板
上一节介绍了tornado的请求与响应,这一节介绍tornado的接口调用顺序和模板 首先都有哪些接口呢?作用是什么呢?并且都有的时候,执行顺序是怎么样的呢? 接口 1.initialize,表示初始 ...
- ecshop不同的文章分类使用不同的模板的方法
ecshop文章模板做的太简单,页面很丑,怎么才能实现不同的文章使用不同的模板呢,方法是有的,就是没有shopex那么方便,但还可以实现,只要能用就行. 1.打开article_cat.php文件,在 ...
- WordPress主题开发:按分类调用文章
调用catid为2的分类下的文章,就是后台分类链接的tag_ID <?php $cat_query = new WP_Query(array( 'cat' => '2' )); ?> ...
- 如何让ECSHOP不同的分类调用不同模板方法
如何给ecshop商品分类,显示不同的模板的话.可以通过不同的分类ID来取得不同模板.我们可以通过分类ID来判断,比如分类为1的,调用cat1.dwt.分类为2的,调用cat2.dwt,我们在cate ...
- wordpress主题制作常用基本的模板及说明
style.css : CSS(样式表)文件,一般包括主题声明和通用css样式代码 index.php : 主页模板,一般用来做网站的首页 header.php : Header模板,一般是所有页面的 ...
- ecshop不同文章分类调用不同文章分类模板
根据需要,不同的文章分类会有不一样的页面风格.也就是说根据文章分类ID来判断,输出不同的文章分类模板. 重点就是文章分类的ID. 打开:article_cat.php $smarty->disp ...
随机推荐
- redis 源码阅读 数值转字符 longlong2str
redis 在底层中会把long long转成string 再做存储. 主个功能是在sds模块里. 下面两函数是把long long 转成 char 和 unsiged long long 转成 ...
- amCharts图表中的JavaScript中文注释引起的浏览器兼容性问题
近期用amCharts做图表.一切都很顺利,然后演示的时候掉链子了,平时开发的时候都是用的火狐和谷歌,加上这种图表框架本来就号称兼容性极好,也没有在ie上测试,演示的机器上恰巧用的是ie11,发现一个 ...
- 配置windows路由表,使电脑同时连接内网外网方法
1.环境一(系统:windows xp,内网.外网不是同一类地址,内网地址固定): 外网:通过笔记本的无线网卡连接: 内网:通过笔记本的本地连接: 第一步,连接网线,配置本地连接地址,注意IP地址不要 ...
- 跨云应用部署第一步:使用IPSEC VPN连接AWS中国版和Windows Azure中国版
随着公有云的普及,越来越多的客户将关键应用迁移到云端.但是事实证明,没有哪家云服务提供商可以提供100%的SLA,无论是例行维护还是意外中断服务,对于客户的关键应用而言,都会受到不同程度的影响.此外, ...
- Java IO工作机制分析
Java的IO类都在java.io包下,这些类大致可分为以下4种: 基于字节操作的 I/O 接口:InputStream 和 OutputStream 基于字符操作的 I/O 接口:Writer 和 ...
- void main() && int main()
C/C++ 中从来没有定义过void main( ) .C++ 之父说过: The definition void main( ) { /* ... * / } is not and never ha ...
- NYOJ 205
大数取模算法: 这个又不同于幂取模算法,对于几百万位的数字取模,直接的方法是行不通的.最好利用数论的知识 (a*b)%c = ((a%c)*b)%c ;利用这个公式我们只要从n的一次方开始不断计算,乘 ...
- Python3实现TCP端口扫描
在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞. TCP端 ...
- 【ASP.NET实战教程】ASP.NET实战教程大集合,各种项目实战集合
[ASP.NET实战教程]ASP.NET实战教程大集合,各种项目实战集合,希望大家可以好好学习教程中,有的比较老了,但是一直很经典!!!!论坛中很多小伙伴说.net没有实战教程学习,所以小编连夜搜集整 ...
- margin-top无效的问题解决方法
今天碰到了margin-top无效的问题,解决方法也有很多一行代码就解决了 解决办法: 1.设置父元素或者自身的display:inline-block;(IE6.IE7不识别inline-block ...