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

静待花开 静待花开     2022-08-12     118

关键词:

这里指的是默认文章类型的模板(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。

 

wordpress父类和子类调用不同模板

...,而所有新增子类调用自定义的category-child.php。求实现!WordPress2.9以后的版本可以可以为不同的分类指定不同的模板样式的。有WP自带的方法和自己编写函数实现的方法,如果是CMS主题的话使用自己编写函数的方法更为灵活和可... 查看详情

wordpress如何让不同的分类显示不同的侧边栏?

我想实现的是首页我调用自己重新建的sidebar2.php而其他分类栏目还是调用sidebar.php现在的情况是把index.php里调用了sidebar2.php而分类栏目也自动调用了sidebar2.php网站内容多了后,想不同的内容来调用不同的侧边栏来优化网站的体验... 查看详情

wordpress给每一个分类栏目定制不同的广告位

给分类栏目添加广告位,等同于添加自定义字段。如果需要依据不同的栏目给广告位添加不同的tag来源,需要在模板页面中获取栏目的分类别名,读取不同的广告。 图1如图1所示添加新的图片输入框1.实现的代码是把下面的... 查看详情

为每个帖子以不同的方式订购 Wordpress 分类法

】为每个帖子以不同的方式订购Wordpress分类法【英文标题】:OrderWordpresstaxonomiesdifferentlyforeachpost【发布时间】:2014-02-2513:56:18【问题描述】:我有一个带有自定义分类和帖子类型的Wordpress主题,我需要能够为每个帖子类型中的... 查看详情

为wordpress中的不同页面加载具有不同内容的通用模板

】为wordpress中的不同页面加载具有不同内容的通用模板【英文标题】:loadcommontemplatewithdifferentcontentfordifferentpagesinwordpress【发布时间】:2021-09-1718:40:56【问题描述】:我创建了一个名为thank-you.php的模板,在里面我想根据父url显... 查看详情

如何实现wordpress不同分类则每页显示不同数量的文章

  有时我们需要让wordpress不同的分类显示不同数量的文章并分页,比如资讯的分类页显示20篇并分页,教程的分类页显示10篇并分页,要如何实现呢?随ytkah一起来看看吧!把下面的代码加入当前主题的function.php文件中functionfilt... 查看详情

wordpress-subdomains怎么用

...类目录多的大网站通常会把子域名作为分类地址url,使用wordpress分类目录多,内容丰富的网站,可以使用WPSubdomains插件把分类目录url地址使用域名的二级域名表示。通过该插件可以实现http://www.boke8.net/wordpress/的分类目录url变为ht... 查看详情

如何在wordpress3.0中使用自定义分类法

WordPress3.0五大新特征是WordPress为了迈向一个成功的内容管理系统努力的印证。之前,我们向大家介绍过WordPress3.0的新功能,自定义发布内容的类型,这篇文章将继续给大家讲一下WordPress3.0另一个比较突出的新功能,自定义分类法... 查看详情

wordpress当前栏目名,当前栏目的分类名

wordpress在设计主题和做模板时经常会用到调用当前分类栏目名称,常见的有当前栏目页、文章页,详情代码如下:1.分类名称与链接<?phpthe_category();?>2.分类页面调用当前分类名称要在分类页得到分类页面的栏目名称,需要用<... 查看详情

Wordpress 分类术语模板循环

】Wordpress分类术语模板循环【英文标题】:WordpressTaxonomyTermtemplateloop【发布时间】:2015-12-0812:43:41【问题描述】:我在我的网站上设置了6个自定义分类,按以下方式注册(示例中的分类名为“主题”):/*Topic*/add_action(\'init\',\'r... 查看详情

wordpress如何添加文章页面?

就是我wordpress导航菜单栏有一个“首页”的菜单,然后我要在它的后面增加一个文章的专栏,就是类似一个分类,但不是分类,菜单我会添加,就是不会新建这种页面。。在“页面”里面可以“新建页面”,在新建的时候可以选... 查看详情

在 wordpress 的自定义页面模板中显示帖子分类信息

】在wordpress的自定义页面模板中显示帖子分类信息【英文标题】:Showposttaxonomyinformationincustompagetemplateinwordpress【发布时间】:2017-11-2510:08:41【问题描述】:我有一个正在通过子主题编辑的主题。我已经能够创建自定义页面模板... 查看详情

wordpress模板页制作教程

 写在前面的话:有很多WordPress小伙伴想制作不同风格的页面来满足自己的个性需求但是大多数模板提供的页面模板非常有限,该如何手动制作属于自己风格的模板页呢?其实,正如以上所说的,每个人都想拥有自己独特的风... 查看详情

带有不同小部件的 Wordpress 不同产品类别页面

】带有不同小部件的Wordpress不同产品类别页面【英文标题】:Wordpressdifferentproductscategorypageswithdifferentwidgets【发布时间】:2018-08-3113:31:47【问题描述】:我正在制作这个基于wordpress的网站(https://naujas.pacopac.lt/),它适用于具有多种... 查看详情

不同的标志页 wordpress

】不同的标志页wordpress【英文标题】:Differentlogopagewordpress【发布时间】:2015-05-1304:34:47【问题描述】:我试图为wordpress网站中的页面显示不同的徽标。我有默认徽标主题,我想为页面插入不同的徽标。这是管理主题文件中徽标... 查看详情

wordpress,discuz根据不同的入口url更换logo

Discuz!中调用cookie的思路出来了:    设置cookie:dsetcookie(‘cookie名‘, ‘cookie值‘, ‘有效时间‘);读取cookie有两种方法,第一种使用getcookie函数:    getcookie(‘cookie名‘);    查看详情

如何在 wordpress 主题的不同页面上显示不同的 logo?

】如何在wordpress主题的不同页面上显示不同的logo?【英文标题】:Howtoshowdifferentlogoondifferentpagesinwordpresstheme?【发布时间】:2012-05-2917:44:28【问题描述】:这里是在我当前使用的wordpress主题上显示标题部分的代码。<divid="site-bra... 查看详情

不同页面上的 Wordpress 用户 ID 不同

】不同页面上的Wordpress用户ID不同【英文标题】:WordpressUserIDisDifferentonDifferentPages【发布时间】:2012-12-0809:55:34【问题描述】:我正在开发Buddypress/Wordpress网站,并使用get_queried_object()->ID;获取用户的ID,但我在不同的页面上得... 查看详情