get_term_parents_list() WP 1.0
Retrieve term parents with separator.
1 time = 0.003063s = very slow | 50000 times = 14.40s = slow | PHP 7.1.2, WP 4.8
No Hooks.
Return
String/WP_Error. A list of term parents on success, WP_Error or empty string on failure.
Usage
get_term_parents_list( $term_id, $taxonomy, $args );
- $term_id(int) (required)
- Term ID.
- $taxonomy(string) (required)
- Taxonomy name.
- $args(string/array)
Array of optional arguments.
-
format(string)
Use term names or slugs for display. Accepts 'name' or 'slug'.
Default: 'name'
-
separator(string)
Separator for between the terms.
Default: '/'
-
link(true/false)
Whether to format as a link.
Default: true
- inclusive(true/false)
Include the term to get the parents for.
Default: true
Default: array()
Changelog
Code of get_term_parents_list() get term parents list
WP 5.6
<?php
function get_term_parents_list( $term_id, $taxonomy, $args = array() ) {
$list = '';
$term = get_term( $term_id, $taxonomy );
if ( is_wp_error( $term ) ) {
return $term;
}
if ( ! $term ) {
return $list;
}
$term_id = $term->term_id;
$defaults = array(
'format' => 'name',
'separator' => '/',
'link' => true,
'inclusive' => true,
);
$args = wp_parse_args( $args, $defaults );
foreach ( array( 'link', 'inclusive' ) as $bool ) {
$args[ $bool ] = wp_validate_boolean( $args[ $bool ] );
}
$parents = get_ancestors( $term_id, $taxonomy, 'taxonomy' );
if ( $args['inclusive'] ) {
array_unshift( $parents, $term_id );
}
foreach ( array_reverse( $parents ) as $term_id ) {
$parent = get_term( $term_id, $taxonomy );
$name = ( 'slug' === $args['format'] ) ? $parent->slug : $parent->name;
if ( $args['link'] ) {
$list .= '<a href="' . esc_url( get_term_link( $parent->term_id, $taxonomy ) ) . '">' . $name . '</a>' . $args['separator'];
} else {
$list .= $name . $args['separator'];
}
}
return $list;
}
Related Functions