get_edit_post_link( int|WP_Post $id, string $context = 'display' )

Retrieves the edit post link for post.


Description Description

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


Parameters Parameters

$id

(int|WP_Post) (Optional) Post ID or post object. Default is the global $post.

$context

(string) (Optional) How to output the '&' character. Default '&'.

Default value: 'display'


Top ↑

Return Return

(string|null) The edit post link for the given post. null if the post type is invalid or does not allow an editing UI.


Top ↑

Source Source

File: wp-includes/link-template.php

function get_edit_post_link( $id = 0, $context = 'display' ) {
	$post = get_post( $id );
	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 ↑

Changelog Changelog

Changelog
Version Description
2.3.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

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