判断 WordPress 文章是否归属特定分类
以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考 我们在进行 wordpress 主题开发时,有时会遇到这样的要求,就是判断某些文章是否归属特定分类,那么就会用到函数:in_category() 这个函数,简单地说,in_category() 是一个布尔函数,作用是检查当前或者指定页面是否归属于某个指定的分类,通常用于给不同的分类目录设置不同的文章模板。 值得注意的是:in_category()考虑只有一篇文章的类别被直接分配(检查类别在写/编辑文章面板),而不是指定类别的父分类(请看下面的重点:如果一篇文章在后代分类下)。在循环内部,这个标签可以用来测试当前的文章;或在循环外的单篇文章请求。如果您指定你想要测试的那篇文章,可以在任何地方使用它。 用法<?php in_category( $category,$_post ) ?> 参数$category (混合的)(必选的)一个或多个被指定分类 ID,分类别名或 slug,或一个数组。 默认: 无 $_post (混合的)(可选的)文章,默认为在主循环内的当前文章或在主查询中的文章。 默认: 无 概述中已经说了这个函数是布尔函数,所以它返回的值要么是真(True),要么是假(False),某篇文章是否属于特定的分类。 举例在循环内测试当前文章 in_category 函数通常用于主循环中,根据当前文章的类别采取不同的行动,例如: < ?php if ( in_category( 'internet' )) { // 如果这篇文章属于internet分类,此处添加要执行的内容。 } elseif ( in_category( array( 'ec','tmt' ) )) { // 如果这篇文章同时属于ec和tmt分类,此处添加要执行的内容。 } else { // 添加默认动作,也可以不要。 } ?> 在循环外测试当前文章,如果你要实现一种功能,根据不同的分类调取不同的模板,不妨试试下面的这个示例: < ?php if ( in_category(1) ) { include 'single-1.php'; } elseif ( in_category('ec') ) { include 'single-ec.php'; } else { include 'single-default.php'; } ?> 重点测试如果一篇文章在后代分类下,这里要注意的是,in_category()函数只能指定一级目录,如果该目录有子孙目录则无效。如”fruits”下还有子目录’apples’,‘bananas’,‘cantaloupes’,‘guavas’,则需全部目录列出来: <?php if ( in_category( array( 'fruits','apples','bananas','cantaloupes','guavas' /*etc*/ ) )) { // These are all fruits } } ?> 但是每次你移去或添加任何水果类别,你都不得不编辑代码。更灵活的方法是使用或适应下面定义的 post_is_in_descendant_category 函数(在使用它之前,你需要复制下面的自定义函数到一个模板,插件,或主题函数文件):一般把此代码放入主题函数文件 functions.php <?php 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()一起使用,调用 post_is_in_descendant_category()函数来指定某目录下的所有子孙目录的文章页都使用某个模板: <?php if ( in_category( 'fruit' ) || post_is_in_descendant_category( 'fruit' ) ) { // These are all fruits… } ?> 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- wordpress4.4 优化wp-json链接、embeds功能
- WordPress管理员工具插件StatPressCN
- WordPress整站定期备份插件 – BackUpWordPress
- Ubuntu服务器上的最优WordPress方案
- Dreamweaver代码的格式化功能掌控html代码的格式
- WordPress建站教程:使用子主题(Child Themes)功能快速制
- Limit Attempts by BestWebSoft – 限制用户登录尝试次
- 给你的WordPress数据库减负的有效方法
- wordpress 博客优化历程(速度)
- WordPress文章复制插件 – Duplicate Post