返回介绍

in_category()

发布于 2017-09-11 01:08:06 字数 3579 浏览 951 评论 0 收藏 0

in_category( int|string|array $category,  int|object $post = null )

Check if the current post is within any of the given categories.


description

The given categories are checked against the post’s categories’ term_ids, names and slugs. Categories given as integers will only be checked against the post’s categories’ term_ids.

Prior to v2.5 of WordPress, category names were not supported. Prior to v2.7, category slugs were not supported. Prior to v2.7, only one category could be compared: in_category( $single_category ). Prior to v2.7, this function could only be used in the WordPress Loop. As of 2.7, the function can be used anywhere if it is provided a post ID or post object.


参数

$category

(int|string|array) (Required) Category ID, name or slug, or array of said.

$post

(int|object) (Optional) Post to check instead of the current post. (since 2.7.0)

Default value: null


返回值

(bool) True if the current post is in any of the given categories.


源代码

File: wp-includes/category-template.php

function in_category( $category, $post = null ) {
	if ( empty( $category ) )
		return false;

	return has_category( $category, $post );
}

更新日志

Versiondescription
1.2.0Introduced.

相关函数

Uses

  • wp-includes/category-template.php: has_category()

User Contributed Notes

  1. Skip to note content You must log in to vote on the helpfulness of this noteVote results for this note: 1You must log in to vote on the helpfulness of this note Contributed by Codex

    Testing the current post outside the Loop
    During a request for an individual post (usually handled by the single.php template), you can test that post’s categories even before the Loop is begun.

    You could use this to switch templates like so:

    
    if ( in_category('fruit') ) {
    	include 'single-fruit.php';
    } elseif ( in_category('vegetables') ) {
    	include 'single-vegetables.php';
    } else {
    	// Continue with normal Loop
    	if ( have_posts() ) : while ( have_posts() ) : the_post();
    	// ...
    }
    

    (The Custom Post Templates Plugin allows for creation of templates for single posts. It also shows an example of how to add a template which is used for all posts in a given category, not just a single post. That example is commented out in the plugin by default but can be easily implemented by uncommenting the appropriate lines.)

  2. Testing the current post within the Loop
    in_category() is often used to take different actions within the Loop depending on the current post’s category, e.g.

    
    if ( in_category( 'pachyderms' )) {
    	// They have long trunks...
    } elseif ( in_category( array( 'Tropical Birds', 'small-mammals' ) )) {
    	// They are warm-blooded...
    } else {
    	// etc.
    }
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文