get_category_parents
Retrieve category parents with separator.
Description
(string|WP_Error) get_category_parents( (int) $id, (constant) $link = false, (string) $separator = '/', (constant) $nicename = false, (array) $visited = array() );
Returns (string|WP_Error)
A list of category parents on success, WP_Error on failure.
Parameters (5)
- 0. $id (int)
- Category ID.
- 1. $link — Optional. (constant) =>
false
- Optional, default is false. Whether to format with link.
- 2. $separator — Optional. (string) =>
'/'
- Optional, default is /.. How to separate categories.
- 3. $nicename — Optional. (constant) =>
false
- Optional, default is false. Whether to use nice name for display.
- 4. $visited — Optional. (array) =>
array()
- Already linked to categories to prevent duplicates.
Usage
if ( !function_exists( 'get_category_parents' ) ) { require_once ABSPATH . WPINC . '/category-template.php'; } // Category ID. $id = -1; // Optional, default is false. Whether to format with link. $link = false; // Optional, default is '/'. How to separate categories. $separator = '/'; // Optional, default is false. Whether to use nice name for display. $nicename = false; // Optional. Already linked to categories to prevent duplicates. $visited = array(); // NOTICE! Understand what this does before running. $result = get_category_parents($id, $link, $separator, $nicename, $visited);
Defined (1)
The function is defined in the following location(s).
- /wp-includes/category-template.php
- function get_category_parents( $id, $link = false, $separator = '/', $nicename = false, $visited = array() ) {
- $chain = '';
- $parent = get_term( $id, 'category' );
- if ( is_wp_error( $parent ) )
- return $parent;
- if ( $nicename )
- $name = $parent->slug;
- else
- $name = $parent->name;
- if ( $parent->parent && ( $parent->parent != $parent->term_id ) && !in_array( $parent->parent, $visited ) ) {
- $visited[] = $parent->parent;
- $chain .= get_category_parents( $parent->parent, $link, $separator, $nicename, $visited );
- }
- if ( $link )
- $chain .= '<a href="' . esc_url( get_category_link( $parent->term_id ) ) . '">'.$name.'</a>' . $separator;
- else
- $chain .= $name.$separator;
- return $chain;
- }