wp_get_post_terms( int $post_id, string|string[] $taxonomy = 'post_tag', array $args = array() ): array|WP_Error
Retrieves the terms for a post.
Parameters
-
$post_id
int Optional -
The Post ID. Does not default to the ID of the global $post. Default 0.
-
$taxonomy
string|string[] Optional -
The taxonomy slug or array of slugs for which to retrieve terms. Default
'post_tag'
.Default:
'post_tag'
-
$args
array Optional -
Term query parameters. See WP_Term_Query::__construct() for supported arguments.
fields
stringTerm fields to retrieve. Default'all'
.
More Arguments from WP_Term_Query::__construct( ... $query )
Array or query string of term query parameters.
taxonomy
string|string[]Taxonomy name, or array of taxonomy names, to which results should be limited.object_ids
int|int[]Object ID, or array of object IDs. Results will be limited to terms associated with these objects.orderby
stringField(s) to order terms by. Accepts:
- Term fields (
'name'
,'slug'
,'term_group'
,'term_id'
,'id'
,'description'
,'parent'
,'term_order'
). Unless$object_ids
is not empty,'term_order'
is treated the same as'term_id'
. 'count'
to use the number of objects associated with the term.'include'
to match the'order'
of the$include
param.'slug__in'
to match the'order'
of the$slug
param.'meta_value'
'meta_value_num'
.- The value of
$meta_key
. - The array keys of
$meta_query
. 'none'
to omit the ORDER BY clause.
'name'
.- Term fields (
order
stringWhether to order terms in ascending or descending order.
Accepts'ASC'
(ascending) or'DESC'
(descending).
Default'ASC'
.hide_empty
bool|intWhether to hide terms not assigned to any posts. Accepts1|true
or0|false
. Default1|true
.include
int[]|stringArray or comma/space-separated string of term IDs to include.
Default empty array.exclude
int[]|stringArray or comma/space-separated string of term IDs to exclude.
If$include
is non-empty,$exclude
is ignored.
Default empty array.exclude_tree
int[]|stringArray or comma/space-separated string of term IDs to exclude along with all of their descendant terms. If$include
is non-empty,$exclude_tree
is ignored. Default empty array.number
int|stringMaximum number of terms to return. Accepts
(all) or any positive number. Default''
|0
(all). Note that''
|0$number
may not return accurate results when coupled with$object_ids
.
See #41796 for details.offset
intThe number by which to offset the terms query.fields
stringTerm fields to query for. Accepts:
'all'
Returns an array of complete term objects (WP_Term[]
).'all_with_object_id'
Returns an array of term objects with the'object_id'
param (WP_Term[]
). Works only when the$object_ids
parameter is populated.'ids'
Returns an array of term IDs (int[]
).'tt_ids'
Returns an array of term taxonomy IDs (int[]
).'names'
Returns an array of term names (string[]
).'slugs'
Returns an array of term slugs (string[]
).'count'
Returns the number of matching terms (int
).'id=>parent'
Returns an associative array of parent term IDs, keyed by term ID (int[]
).'id=>name'
Returns an associative array of term names, keyed by term ID (string[]
).'id=>slug'
Returns an associative array of term slugs, keyed by term ID (string[]
).
'all'
.count
boolWhether to return a term count. If true, will take precedence over$fields
. Default false.name
string|string[]Name or array of names to return term(s) for.
slug
string|string[]Slug or array of slugs to return term(s) for.
term_taxonomy_id
int|int[]Term taxonomy ID, or array of term taxonomy IDs, to match when querying terms.hierarchical
boolWhether to include terms that have non-empty descendants (even if$hide_empty
is set to true). Default true.search
stringSearch criteria to match terms. Will be SQL-formatted with wildcards before and after.name__like
stringRetrieve terms with criteria by which a term is LIKE$name__like
.description__like
stringRetrieve terms where the description is LIKE$description__like
.pad_counts
boolWhether to pad the quantity of a term's children in the quantity of each term's "count" object variable. Default false.get
stringWhether to return terms regardless of ancestry or whether the terms are empty. Accepts'all'
or''
(disabled). Default''
.child_of
intTerm ID to retrieve child terms of. If multiple taxonomies are passed,$child_of
is ignored. Default 0.parent
intParent term ID to retrieve direct-child terms of.
childless
boolTrue to limit results to terms that have no children.
This parameter has no effect on non-hierarchical taxonomies.
Default false.cache_domain
stringUnique cache key to be produced when this query is stored in an object cache. Default'core'
.cache_results
boolWhether to cache term information. Default true.update_term_meta_cache
boolWhether to prime meta caches for matched terms. Default true.meta_key
string|string[]Meta key or keys to filter by.meta_value
string|string[]Meta value or values to filter by.meta_compare
stringMySQL operator used for comparing the meta value.
See WP_Meta_Query::__construct() for accepted values and default value.meta_compare_key
stringMySQL operator used for comparing the meta key.
See WP_Meta_Query::__construct() for accepted values and default value.meta_type
stringMySQL data type that the meta_value column will be CAST to for comparisons.
See WP_Meta_Query::__construct() for accepted values and default value.meta_type_key
stringMySQL data type that the meta_key column will be CAST to for comparisons.
See WP_Meta_Query::__construct() for accepted values and default value.meta_query
arrayAn associative array of WP_Meta_Query arguments.
See WP_Meta_Query::__construct() for accepted values.
Default:
array()
Return
array|WP_Error Array of WP_Term objects on success or empty array if no terms were found.
WP_Error object if $taxonomy
doesn't exist.
Source
File: wp-includes/post.php
.
View all references
function wp_get_post_terms( $post_id = 0, $taxonomy = 'post_tag', $args = array() ) {
$post_id = (int) $post_id;
$defaults = array( 'fields' => 'all' );
$args = wp_parse_args( $args, $defaults );
$tags = wp_get_object_terms( $post_id, $taxonomy, $args );
return $tags;
}
Changelog
Version | Description |
---|---|
2.8.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
The difference between this function and
get_the_terms()
is that this function’s results are not cached (thus, it’ll hit the database every time its called).Top ↑
Feedback
This is not entirely true. Another key distinction is that
get_the_terms()
does not allow the third parameter:$args
. — By Joshua Fredrickson —Examples
Get term category to only run function if the post (CPT) has that category:
Use curly brackets recommended but not needed on one expression of foreach
Get all taxonomy slug of a post
You can get the taxonomy terms HTML using this function am_get_post_term
[/php]