WordPress Version: 5.9
/**
* Retrieves the URL for editing a given term.
*
* @since 3.1.0
* @since 4.5.0 The `$taxonomy` parameter was made optional.
*
* @param int|WP_Term|object $term The ID or term object whose edit link will be retrieved.
* @param string $taxonomy Optional. Taxonomy. Defaults to the taxonomy of the term identified
* by `$term`.
* @param string $object_type Optional. The object type. Used to highlight the proper post type
* menu on the linked page. Defaults to the first object_type associated
* with the taxonomy.
* @return string|null The edit term link URL for the given term, or null on failure.
*/
function get_edit_term_link($term, $taxonomy = '', $object_type = '')
{
$term = get_term($term, $taxonomy);
if (!$term || is_wp_error($term)) {
return;
}
$tax = get_taxonomy($term->taxonomy);
$term_id = $term->term_id;
if (!$tax || !current_user_can('edit_term', $term_id)) {
return;
}
$args = array('taxonomy' => $taxonomy, 'tag_ID' => $term_id);
if ($object_type) {
$args['post_type'] = $object_type;
} elseif (!empty($tax->object_type)) {
$args['post_type'] = reset($tax->object_type);
}
if ($tax->show_ui) {
$location = add_query_arg($args, admin_url('term.php'));
} else {
$location = '';
}
/**
* Filters the edit link for a term.
*
* @since 3.1.0
*
* @param string $location The edit link.
* @param int $term_id Term ID.
* @param string $taxonomy Taxonomy name.
* @param string $object_type The object type.
*/
return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}