wordpress 不同分类下的文章使用不同模版
admin
2023-06-13 01:01:47
0

1、根据模板文件名进行判断
a、将下面的代码添加到当前主题的 functions.php 文件
/**

  • 不同分类使用不同的文章模板

  • From http://www.wpdaxue.com/custom...

*/
//定义模板文件所在目录为 single 文件夹
define(SINGLE_PATH, TEMPLATEPATH . '/single');
//自动选择模板的函数

function wpdaxue_single_template($single) {    global $wp_query, $post;    //通过分类别名或ID选择模板文件
    foreach((array)get_the_category() as $cat) :        if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))            return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';        elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))            return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';    endforeach;
}

//通过 single_template 钩子挂载函数
add_filter('single_template', 'wpdaxue_single_template');
b、在当前主题的根目录创建一个名为 single 的文件夹,然后根据不同分类创建不同的文件,命名格式为 single-cat-[分类别名或ID].php。请记得为所有分类创建自己的模板文件。

2、使用 in_category() 进行判断
in_category() 函数可以通过分类别名或ID判断当前文章所属的分类,而且可以直接在循环(Loop)内部和外部使用。

如果是单个分类 ID ,比如ID 为 2 ,可以这样写

in_category(2)
如果是单个分类别名,比如别名为 themes,可以这样写

in_category('themes')
如果是多个ID,可以这样写

in_category( array( 2,3,7) )
如果是多个别名,可以这样写

in_category( array( 'themes','plugins','develop') )
们可以在主题的根目录创建3个文章模板文件,分别命名为 single001.php , single002.php 和 single003.php,然后我们希望 ID 为 2 和 3 的分类使用 single001.php,ID为 7 的分类使用 single002.php ,其他分类使用 single003.php


相关内容

热门资讯

英媒爆料:万斯陷入空前孤立,或... 持反战态度的美国国家情报总监加巴德日前辞职,她被认为是副总统万斯的重要盟友。英媒爆料称,随着加巴德的...
特朗普要求先签“亚伯拉罕协议”... 新华社利雅得5月25日电(记者王海洲 罗晨)据沙特阿拉伯阿拉比亚电视台25日报道,就美国总统特朗普呼...
美司法部称白宫附近枪击案是针对... 新华社华盛顿5月25日电 据美国媒体25日报道,美国司法部在一份文件中称,23日发生在白宫附近的枪击...
半岛电视台:美伊就资产解冻问题... 新华社多哈5月25日电(记者汪强)卡塔尔半岛电视台25日报道,一名了解伊朗高级代表团在多哈会谈情况的...
多地积极探索算电协同创新模式 本报记者 李万晨曦 近日,南方电网广西电网公司联合中国移动广西公司开展了首次算电协同响应实景测试,成...
乘舟向天宫 逐梦揽星河——神舟... 乘舟向天宫  逐梦揽星河 ——神舟二十三号载人飞行任务乘组出征侧记 ■杨子凡 解放军报记者 赵 倩 ...
基恩士相机无图像维修服务商梳理... 导语:在工业自动化设备运维中,基恩士相机作为视觉检测的核心部件,其稳定性直接影响生产线效率。针对无图...
新型3D打印技术问世 机构高频... 新型3D打印技术问世机构高频调研3只概念股 人民财讯5月25日电,2026年以来,3D打印行业内好消...
DeepSeek V4永久降价... 快科技5月25日消息,DeepSeek近日更新API文档,宣布DeepSeek-V4-Pro模型在5...
俄外长告知美方对乌打击计划 新华社莫斯科5月25日电(记者侯鸣)俄罗斯外交部网站25日发布通告说,俄外交部长拉夫罗夫当天同美国国...