Title: wp_set_post_lock
Published: April 25, 2014
Last modified: February 24, 2026

---

# wp_set_post_lock( int|WP_Post $post ): array|false

## In this article

 * [Parameters](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#wp--skip-link--target)

Marks the post as currently being edited by the current user.

## 󠀁[Parameters](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#parameters)󠁿

 `$post`int|[WP_Post](https://developer.wordpress.org/reference/classes/wp_post/)
required

ID or object of the post being edited.

## 󠀁[Return](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#return)󠁿

 array|false Array of the lock time and user ID. False if the post does not exist,
or there is no current user.

 * `0` int
 * The current time as a Unix timestamp.
 * `1` int
 * The ID of the current user.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#source)󠁿

    ```php
    function wp_set_post_lock( $post ) {
    	$post = get_post( $post );

    	if ( ! $post ) {
    		return false;
    	}

    	$user_id = get_current_user_id();

    	if ( 0 === $user_id ) {
    		return false;
    	}

    	$now  = time();
    	$lock = "$now:$user_id";

    	update_post_meta( $post->ID, '_edit_lock', $lock );

    	return array( $now, $user_id );
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-admin/includes/post.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/post.php#L1764)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/post.php#L1764-L1783)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#related)󠁿

| Uses | Description | 
| [update_post_meta()](https://developer.wordpress.org/reference/functions/update_post_meta/)`wp-includes/post.php` |

Updates a post meta field based on the given post ID.

  | 
| [get_current_user_id()](https://developer.wordpress.org/reference/functions/get_current_user_id/)`wp-includes/user.php` |

Gets the current user’s ID.

  | 
| [get_post()](https://developer.wordpress.org/reference/functions/get_post/)`wp-includes/post.php` |

Retrieves post data given a post ID or post object.

  |

[Show 1 more](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#)

| Used by | Description | 
| [wp_refresh_post_lock()](https://developer.wordpress.org/reference/functions/wp_refresh_post_lock/)`wp-admin/includes/misc.php` |

Checks lock status on the New/Edit Post screen and refresh the lock.

  | 
| [wp_write_post()](https://developer.wordpress.org/reference/functions/wp_write_post/)`wp-admin/includes/post.php` |

Creates a new post from the “Write Post” form using `$_POST` information.

  | 
| [edit_post()](https://developer.wordpress.org/reference/functions/edit_post/)`wp-admin/includes/post.php` |

Updates an existing post with values provided in `$_POST`.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/wp_set_post_lock/?output_format=md#changelog)󠁿

| Version | Description | 
| [2.5.0](https://developer.wordpress.org/reference/since/2.5.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Fwp_set_post_lock%2F)
before being able to contribute a note or feedback.