get_edit_post_link( int|WP_Post $id, string $context = 'display' )
Retrieves the edit post link for post.
Description
Can be used within the ClassicPress loop or outside of it. Can be used with pages, posts, attachments, and revisions.
Parameters
- $id
-
(Optional) Post ID or post object. Default is the global
$post
. - $context
-
(Optional) How to output the '&' character. Default '&'.
Default value: 'display'
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.
Source
File: wp-includes/link-template.php
function get_edit_post_link( $id = 0, $context = 'display' ) {
if ( ! $post = get_post( $id ) )
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 WP-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 );
}
Changelog
Version | Description |
---|---|
WP-2.3.0 | Introduced. |