get_edit_post_link( int|WP_Post $post, string $context = 'display' ): string|null

Retrieves the edit post link for post.


Description

Can be used within the WordPress loop or outside of it. Can be used with pages, posts, attachments, and revisions.


Top ↑

Parameters

$post int|WP_Post Optional
Post ID or post object. Default is the global $post.
$context string Optional
How to output the '&' character. Default '&'.

Default: 'display'


Top ↑

Return

string|null The edit post link for the given post. Null if the post type does not exist or does not allow an editing UI.


Top ↑

Source

File: wp-includes/link-template.php. View all references

function get_edit_post_link( $post = 0, $context = 'display' ) {
	$post = get_post( $post );

	if ( ! $post ) {
		return;
	}

	if ( 'revision' === $post->post_type ) {
		$action = '';
	} elseif ( 'display' === $context ) {
		$action = '&action=edit';
	} else {
		$action = '&action=edit';
	}

	$post_type_object = get_post_type_object( $post->post_type );

	if ( ! $post_type_object ) {
		return;
	}

	if ( ! current_user_can( 'edit_post', $post->ID ) ) {
		return;
	}

	if ( $post_type_object->_edit_link ) {
		$link = admin_url( sprintf( $post_type_object->_edit_link . $action, $post->ID ) );
	} else {
		$link = '';
	}

	/**
	 * Filters the post edit link.
	 *
	 * @since 2.3.0
	 *
	 * @param string $link    The edit link.
	 * @param int    $post_id Post ID.
	 * @param string $context The link context. If set to 'display' then ampersands
	 *                        are encoded.
	 */
	return apply_filters( 'get_edit_post_link', $link, $post->ID, $context );
}

Top ↑

Hooks



Top ↑

Changelog

Changelog
Version Description
2.3.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Ahmed El-Atab
    // Hide the Edit Post Link from Non Administrators Start.
    
    function wpdocs_remove_get_edit_post_link( $link ) {
        if ( current_user_can( 'administrator' ) ) {
            return $link;
        }
    
        return null;
    }
    
    add_filter( 'get_edit_post_link', 'wpdocs_remove_get_edit_post_link' );
    
    // Hide the Edit Post Link from Non Administrators End.

You must log in before being able to contribute a note or feedback.