* @param string $revision_date_author The formatted string.
* @param WP_Post $revision The revision object.
* @param bool $link Whether to link to the revisions page, as passed into
* wp_post_revision_title_expanded().
return apply_filters( 'wp_post_revision_title_expanded', $revision_date_author, $revision, $link );
* Displays a list of a post's revisions.
* Can output either a UL with edit links or a TABLE with diff interface, and
* @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
* @param string $type 'all' (default), 'revision' or 'autosave'
function wp_list_post_revisions( $post = 0, $type = 'all' ) {
$post = get_post( $post );
// $args array with (parent, format, right, left, type) deprecated since 3.6.
if ( is_array( $type ) ) {
$type = ! empty( $type['type'] ) ? $type['type'] : $type;
_deprecated_argument( __FUNCTION__, '3.6.0' );
$revisions = wp_get_post_revisions( $post->ID );
foreach ( $revisions as $revision ) {
if ( ! current_user_can( 'read_post', $revision->ID ) ) {
$is_autosave = wp_is_post_autosave( $revision );
if ( ( 'revision' === $type && $is_autosave ) || ( 'autosave' === $type && ! $is_autosave ) ) {
$rows .= "\t<li>" . wp_post_revision_title_expanded( $revision ) . "</li>\n";
echo "<div class='hide-if-js'><p>" . __( 'JavaScript must be enabled to use this feature.' ) . "</p></div>\n";
echo "<ul class='post-revisions hide-if-no-js'>\n";
* Retrieves the parent post object for the given post.
* @param int|WP_Post|null $post Optional. Post ID or WP_Post object. Default is global $post.
* @return WP_Post|null Parent post object, or null if there isn't one.
function get_post_parent( $post = null ) {
$wp_post = get_post( $post );
return ! empty( $wp_post->post_parent ) ? get_post( $wp_post->post_parent ) : null;
* Returns whether the given post has a parent post.
* @param int|WP_Post|null $post Optional. Post ID or WP_Post object. Default is global $post.
* @return bool Whether the post has a parent post.
function has_post_parent( $post = null ) {
return (bool) get_post_parent( $post );