get_edit_term_link

The timeline below displays how wordpress function get_edit_term_link has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

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);
}

WordPress Version: 5.3

/**
 * Retrieves the URL for editing a given term.
 *
 * @since 3.1.0
 * @since 4.5.0 The `$taxonomy` parameter was made optional.
 *
 * @param int    $term_id     Term ID.
 * @param string $taxonomy    Optional. Taxonomy. Defaults to the taxonomy of the term identified
 *                            by `$term_id`.
 * @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_id, $taxonomy = '', $object_type = '')
{
    $term = get_term($term_id, $taxonomy);
    if (!$term || is_wp_error($term)) {
        return;
    }
    $tax = get_taxonomy($term->taxonomy);
    if (!$tax || !current_user_can('edit_term', $term->term_id)) {
        return;
    }
    $args = array('taxonomy' => $taxonomy, 'tag_ID' => $term->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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 4.7

/**
 * Retrieves the URL for editing a given term.
 *
 * @since 3.1.0
 * @since 4.5.0 The `$taxonomy` argument was made optional.
 *
 * @param int    $term_id     Term ID.
 * @param string $taxonomy    Optional. Taxonomy. Defaults to the taxonomy of the term identified
 *                            by `$term_id`.
 * @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_id, $taxonomy = '', $object_type = '')
{
    $term = get_term($term_id, $taxonomy);
    if (!$term || is_wp_error($term)) {
        return;
    }
    $tax = get_taxonomy($term->taxonomy);
    if (!$tax || !current_user_can('edit_term', $term->term_id)) {
        return;
    }
    $args = array('taxonomy' => $taxonomy, 'tag_ID' => $term->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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 4.6

/**
 * Retrieves the URL for editing a given term.
 *
 * @since 3.1.0
 * @since 4.5.0 The `$taxonomy` argument was made optional.
 *
 * @param int    $term_id     Term ID.
 * @param string $taxonomy    Optional. Taxonomy. Defaults to the taxonomy of the term identified
 *                            by `$term_id`.
 * @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_id, $taxonomy = '', $object_type = '')
{
    $term = get_term($term_id, $taxonomy);
    if (!$term || is_wp_error($term)) {
        return;
    }
    $tax = get_taxonomy($term->taxonomy);
    if (!$tax || !current_user_can($tax->cap->edit_terms)) {
        return;
    }
    $args = array('taxonomy' => $taxonomy, 'tag_ID' => $term->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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 4.5

/**
 * Retrieves the URL for editing a given term.
 *
 * @since 3.1.0
 * @since 4.5.0 The `$taxonomy` argument was made optional.
 *
 * @param int    $term_id     Term ID.
 * @param string $taxonomy    Optional. Taxonomy. Defaults to the taxonomy of the term identified by `$term_id`.
 * @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_id, $taxonomy = '', $object_type = '')
{
    $term = get_term($term_id, $taxonomy);
    if (!$term || is_wp_error($term)) {
        return;
    }
    $tax = get_taxonomy($term->taxonomy);
    if (!$tax || !current_user_can($tax->cap->edit_terms)) {
        return;
    }
    $args = array('taxonomy' => $taxonomy, 'tag_ID' => $term->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 = '';
    }
    /**
     * Filter 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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 4.4

/**
 * Retrieve edit term url.
 *
 * @since 3.1.0
 *
 * @param int    $term_id     Term ID.
 * @param string $taxonomy    Taxonomy.
 * @param string $object_type 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_id, $taxonomy, $object_type = '')
{
    $tax = get_taxonomy($taxonomy);
    if (!$tax || !current_user_can($tax->cap->edit_terms)) {
        return;
    }
    $term = get_term($term_id, $taxonomy);
    if (!$term || is_wp_error($term)) {
        return;
    }
    $args = array('action' => 'edit', 'taxonomy' => $taxonomy, 'tag_ID' => $term->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('edit-tags.php'));
    } else {
        $location = '';
    }
    /**
     * Filter 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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 4.3

/**
 * Retrieve edit term url.
 *
 * @since 3.1.0
 *
 * @param int    $term_id     Term ID.
 * @param string $taxonomy    Taxonomy.
 * @param string $object_type 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_id, $taxonomy, $object_type = '')
{
    $tax = get_taxonomy($taxonomy);
    if (!$tax || !current_user_can($tax->cap->edit_terms)) {
        return;
    }
    $term = get_term($term_id, $taxonomy);
    if (!$term || is_wp_error($term)) {
        return;
    }
    $args = array('action' => 'edit', 'taxonomy' => $taxonomy, 'tag_ID' => $term->term_id);
    if ($object_type) {
        $args['post_type'] = $object_type;
    } elseif (!empty($tax->object_type)) {
        $args['post_type'] = reset($tax->object_type);
    }
    $location = add_query_arg($args, admin_url('edit-tags.php'));
    /**
     * Filter 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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 4.2

/**
 * Retrieve edit term url.
 *
 * @since 3.1.0
 *
 * @param int    $term_id     Term ID.
 * @param string $taxonomy    Taxonomy.
 * @param string $object_type 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 The edit term link URL for the given term.
 */
function get_edit_term_link($term_id, $taxonomy, $object_type = '')
{
    $tax = get_taxonomy($taxonomy);
    if (!current_user_can($tax->cap->edit_terms)) {
        return;
    }
    $term = get_term($term_id, $taxonomy);
    $args = array('action' => 'edit', 'taxonomy' => $taxonomy, 'tag_ID' => $term->term_id);
    if ($object_type) {
        $args['post_type'] = $object_type;
    } else if (!empty($tax->object_type)) {
        $args['post_type'] = reset($tax->object_type);
    }
    $location = add_query_arg($args, admin_url('edit-tags.php'));
    /**
     * Filter 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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 4.1

/**
 * Retrieve edit term url.
 *
 * @since 3.1.0
 *
 * @param int $term_id Term ID
 * @param string $taxonomy Taxonomy
 * @param string $object_type The object type
 * @return string The edit term link URL for the given term.
 */
function get_edit_term_link($term_id, $taxonomy, $object_type = '')
{
    $tax = get_taxonomy($taxonomy);
    if (!current_user_can($tax->cap->edit_terms)) {
        return;
    }
    $term = get_term($term_id, $taxonomy);
    $args = array('action' => 'edit', 'taxonomy' => $taxonomy, 'tag_ID' => $term->term_id);
    if ($object_type) {
        $args['post_type'] = $object_type;
    }
    $location = add_query_arg($args, admin_url('edit-tags.php'));
    /**
     * Filter 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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 3.9

/**
 * Retrieve edit term url.
 *
 * @since 3.1.0
 *
 * @param int $term_id Term ID
 * @param string $taxonomy Taxonomy
 * @param string $object_type The object type
 * @return string
 */
function get_edit_term_link($term_id, $taxonomy, $object_type = '')
{
    $tax = get_taxonomy($taxonomy);
    if (!current_user_can($tax->cap->edit_terms)) {
        return;
    }
    $term = get_term($term_id, $taxonomy);
    $args = array('action' => 'edit', 'taxonomy' => $taxonomy, 'tag_ID' => $term->term_id);
    if ($object_type) {
        $args['post_type'] = $object_type;
    }
    $location = add_query_arg($args, admin_url('edit-tags.php'));
    /**
     * Filter 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 (eg. the post type).
     */
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}

WordPress Version: 3.7

/**
 * Retrieve edit term url.
 *
 * @since 3.1.0
 *
 * @param int $term_id Term ID
 * @param string $taxonomy Taxonomy
 * @param string $object_type The object type
 * @return string
 */
function get_edit_term_link($term_id, $taxonomy, $object_type = '')
{
    $tax = get_taxonomy($taxonomy);
    if (!current_user_can($tax->cap->edit_terms)) {
        return;
    }
    $term = get_term($term_id, $taxonomy);
    $args = array('action' => 'edit', 'taxonomy' => $taxonomy, 'tag_ID' => $term->term_id);
    if ($object_type) {
        $args['post_type'] = $object_type;
    }
    $location = add_query_arg($args, admin_url('edit-tags.php'));
    return apply_filters('get_edit_term_link', $location, $term_id, $taxonomy, $object_type);
}