On this page
wp_get_post_categories( int $post_id, array $args = array() ): array|WP_Error
Retrieves the list of categories for a post.
Description
Compatibility layer for themes and plugins. Also an easy layer of abstraction away from the complexity of the taxonomy layer.
See also
Parameters
$post_idint Optional-
The Post ID. Does not default to the ID of the global $post. Default 0.
$argsarray Optional-
Category query parameters.
See WP_Term_Query::__construct() for supported arguments.More Arguments from WP_Term_Query::__construct( ... $query )
Array or query string of term query parameters.
taxonomystring|string[]Taxonomy name, or array of taxonomy names, to which results should be limited.object_idsint|int[]Object ID, or array of object IDs. Results will be limited to terms associated with these objects.orderbystringField(s) to order terms by. Accepts:
- Term fields (
'name','slug','term_group','term_id','id','description','parent','term_order'). Unless$object_idsis 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$includeparam.'slug__in'to match the'order'of the$slugparam.'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 (
orderstringWhether to order terms in ascending or descending order.
Accepts'ASC'(ascending) or'DESC'(descending).
Default'ASC'.hide_emptybool|intWhether to hide terms not assigned to any posts. Accepts1|trueor0|false. Default1|true.includeint[]|stringArray or comma/space-separated string of term IDs to include.
Default empty array.excludeint[]|stringArray or comma/space-separated string of term IDs to exclude.
If$includeis non-empty,$excludeis ignored.
Default empty array.exclude_treeint[]|stringArray or comma/space-separated string of term IDs to exclude along with all of their descendant terms. If$includeis non-empty,$exclude_treeis ignored. Default empty array.numberint|stringMaximum number of terms to return. Accepts(all) or any positive number. Default''|0(all). Note that''|0$numbermay not return accurate results when coupled with$object_ids.
See #41796 for details.offsetintThe number by which to offset the terms query.fieldsstringTerm 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_idsparameter 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'.countboolWhether to return a term count. If true, will take precedence over$fields. Default false.namestring|string[]Name or array of names to return term(s) for.
slugstring|string[]Slug or array of slugs to return term(s) for.
term_taxonomy_idint|int[]Term taxonomy ID, or array of term taxonomy IDs, to match when querying terms.hierarchicalboolWhether to include terms that have non-empty descendants (even if$hide_emptyis set to true). Default true.searchstringSearch criteria to match terms. Will be SQL-formatted with wildcards before and after.name__likestringRetrieve terms with criteria by which a term is LIKE$name__like.description__likestringRetrieve terms where the description is LIKE$description__like.pad_countsboolWhether to pad the quantity of a term's children in the quantity of each term's "count" object variable. Default false.getstringWhether to return terms regardless of ancestry or whether the terms are empty. Accepts'all'or''(disabled). Default''.child_ofintTerm ID to retrieve child terms of. If multiple taxonomies are passed,$child_ofis ignored. Default 0.parentintParent term ID to retrieve direct-child terms of.
childlessboolTrue to limit results to terms that have no children.
This parameter has no effect on non-hierarchical taxonomies.
Default false.cache_domainstringUnique cache key to be produced when this query is stored in an object cache. Default'core'.update_term_meta_cacheboolWhether to prime meta caches for matched terms. Default true.meta_keystring|string[]Meta key or keys to filter by.meta_valuestring|string[]Meta value or values to filter by.meta_comparestringMySQL operator used for comparing the meta value.
See WP_Meta_Query::__construct() for accepted values and default value.meta_compare_keystringMySQL operator used for comparing the meta key.
See WP_Meta_Query::__construct() for accepted values and default value.meta_typestringMySQL 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_keystringMySQL 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_queryarrayAn associative array of WP_Meta_Query arguments.
See WP_Meta_Query::__construct() for accepted values.
Default:
array()
Return
array|WP_Error List of categories. If the $fields argument passed via $args is 'all' or 'all_with_object_id', an array of WP_Term objects will be returned. If $fields is 'ids', an array of category IDs. If $fields is 'names', an array of category names.
WP_Error object if 'category' taxonomy doesn't exist.
More Information
The results from wp_get_post_categories() aren’t cached which will result in a database call being made every time this function is called. Use this function with care. For performance, functions like get_the_category() should be used to return categories attached to a post.
Source
File: wp-includes/post.php. View all references
function wp_get_post_categories( $post_id = 0, $args = array() ) {
$post_id = (int) $post_id;
$defaults = array( 'fields' => 'ids' );
$args = wp_parse_args( $args, $defaults );
$cats = wp_get_object_terms( $post_id, 'category', $args );
return $cats;
}
Related
Uses
| Uses | Description |
|---|---|
| wp_get_object_terms() wp-includes/taxonomy.php | Retrieves the terms associated with the given object(s), in the supplied taxonomies. |
| wp_parse_args() wp-includes/functions.php | Merges user defined arguments into defaults array. |
Used By
| Used By | Description |
|---|---|
| bulk_edit_posts() wp-admin/includes/post.php | Processes the post data for the bulk editing of posts. |
| wp_get_post_cats() wp-includes/deprecated.php | Retrieves a list of post categories. |
| wp_xmlrpc_server::mt_getPostCategories() wp-includes/class-wp-xmlrpc-server.php | Retrieve post categories. |
| wp_xmlrpc_server::mt_publishPost() wp-includes/class-wp-xmlrpc-server.php | Sets a post’s publish status to ‘publish’. |
| wp_xmlrpc_server::mw_getPost() wp-includes/class-wp-xmlrpc-server.php | Retrieve post. |
| wp_xmlrpc_server::mw_getRecentPosts() wp-includes/class-wp-xmlrpc-server.php | Retrieve list of recent posts. |
| wp_xmlrpc_server::blogger_getPost() wp-includes/class-wp-xmlrpc-server.php | Retrieve post. |
| wp_xmlrpc_server::blogger_getRecentPosts() wp-includes/class-wp-xmlrpc-server.php | Retrieve list of recent posts. |
| wp_xmlrpc_server::_prepare_page() wp-includes/class-wp-xmlrpc-server.php | Prepares page data for return in an XML-RPC object. |
Changelog
| Version | Description |
|---|---|
| 2.1.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_get_post_categories?replytocom=493