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|arrayoptional- The term name/term_id/slug, or an array of them to check for.
Default:
''
$taxonomy
stringoptional- Taxonomy name.
Default:
''
$post
int|WP_Postoptional- Post to check. Defaults to the current post.
Default:
null
Source
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;
}
Changelog
Version | Description |
---|---|
3.1.0 | Introduced. |
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”.
The has_term function in WordPress is used to check if a post has a specific term (category, tag, or custom taxonomy term). Here’s an example: