has_term( string|int|array $term = '', string $taxonomy = '', int|WP_Post $post = null )
Checks if the current post has any of given terms.
Description
The given terms are checked against the post’s terms’ term_ids, names and slugs. Terms given as integers will only be checked against the post’s terms’ term_ids.
If no terms are given, determines if post has any terms.
Parameters
- $term
-
(string|int|array) (Optional) The term name/term_id/slug, or an array of them to check for.
Default value: ''
- $taxonomy
-
(string) (Optional) Taxonomy name.
Default value: ''
- $post
-
(int|WP_Post) (Optional) Post to check instead of the current post.
Default value: null
Return
(bool) True if the current post has any of the given terms (or any term, if no term specified). False otherwise.
Source
File: wp-includes/category-template.php
function has_term( $term = '', $taxonomy = '', $post = null ) { $post = get_post( $post ); if ( ! $post ) { return false; } $r = is_object_in_term( $post->ID, $taxonomy, $term ); if ( is_wp_error( $r ) ) { return false; } return $r; }
Expand full source code Collapse full source code View on Trac View on GitHub
Changelog
Version | Description |
---|---|
3.1.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
If you’re checking for the presence of any terms from a given taxonomy on a post, you can pass in an empty string as the first parameter.
Example
This is useful if you want to conditionally display some markup that applies only if terms have been added to a post.
Example
Example for check if a post of cpt have a specific term of a custom taxonomy.
In this example we check if the post have a term ‘action’ and in this case asign one css class to a variable that we use later on html.
CPT: “hook”
Taxonomy: “hook-type”
Taxonomy terms: “action” and “filter”.
Note that in this example, this code is inside a cpt archive file “archive-hook.php”.