get_edit_term_link()WP 3.1.0

Gets the URL for editing the specified taxonomy term.

If the user does not have permission to edit the current taxonomy, the function will return nothing (will return null).

1 time — 0.000355 sec (fast) | 50000 times — 2 sec (fast) | PHP 7.0.2, WP 4.4.2
Hooks from the function

Returns

String|null. URL of the specified term.
Will return null if the specified taxonomy or term does not exist or the user does not have permission to edit the term.

Usage

get_edit_term_link( $term_id, $taxonomy, $object_type );
$term_id(int) (required)
ID of the taxonomy term.
$taxonomy(string)
Name of the taxonomy to which the term belongs. Since version 4.5, this argument is optional.
Default: ''
$object_type(string)
Name of the post type. Used as an additional parameter in the link to open the specified post type's menu in the main menu on the edit page. Needed when the taxonomy belongs to multiple post types. By default, the first post type to which the taxonomy is attached is specified.
Default: ''

Examples

0

#1 Get the URL to edit a taxonomy element

This example will display the URL (link) to edit the taxonomy element with ID 154.

$term = get_term( 154 ); // get the item

$edit_link = get_edit_term_link( $term );

echo $edit_link;

// outputs
// http://example.com/wp-admin/edit-tags.php?action=edit&taxonomy=mycat&tag_ID=154&post_type=myposttype

Or it could be written in a simpler way:

$edit_link = get_edit_term_link( 123 );
0

#2 Nightlight post type in admin menu

If same taxonomy belong to many post types, we can choose the post type in admin menu to be highlighted:

$term_id   = 123;
$taxonomy  = 'my_tax';
$post_type = 'my_post_type'; // $this->screen->post_type

$edit_link = get_edit_term_link( $term_id, $taxonomy, $post_type );

echo esc_url( $edit_link );

Changelog

Since 3.1.0 Introduced.
Since 4.5.0 The $taxonomy parameter was made optional.

get_edit_term_link() code WP 6.8.3

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' => $tax->name,
		'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 );
}