get_edit_term_link()WP 3.1.0

Retrieves the URL for editing a given term.

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

Return

String|null. The edit term link URL for the given term, or null on failure.

Usage

get_edit_term_link( $term, $taxonomy, $object_type );
$term(int|WP_Term|object) (required)
The ID or term object whose edit link will be retrieved.
$taxonomy(string)
Taxonomy.
Default: taxonomy of the term identified by $term
$object_type(string)
The object type. Used to highlight the proper post type menu on the linked page.
Default: first object_type associated with the taxonomy

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.4.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' => $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 );
}