A WordPress-centric search engine for devs and theme authors



wp_check_locked_posts ›

Since3.6.0
Deprecatedn/a
wp_check_locked_posts ( $response, $data, $screen_id )
Parameters: (3)
  • (array) $response The Heartbeat response.
    Required: Yes
  • (array) $data The $_POST data sent.
    Required: Yes
  • (string) $screen_id The screen id.
    Required: Yes
Returns:
  • (array) The Heartbeat response.
Defined at:
Codex:

Check lock status for posts displayed on the Posts screen



Source

function wp_check_locked_posts( $response, $data, $screen_id ) {
	$checked = array();

	if ( array_key_exists( 'wp-check-locked-posts', $data ) && is_array( $data['wp-check-locked-posts'] ) ) {
		foreach ( $data['wp-check-locked-posts'] as $key ) {
			if ( ! $post_id = absint( substr( $key, 5 ) ) ) {
				continue;
			}

			if ( ( $user_id = wp_check_post_lock( $post_id ) ) && ( $user = get_userdata( $user_id ) ) && current_user_can( 'edit_post', $post_id ) ) {
				$send = array( 'text' => sprintf( __( '%s is currently editing' ), $user->display_name ) );

				if ( ( $avatar = get_avatar( $user->ID, 18 ) ) && preg_match( "|src='([^']+)'|", $avatar, $matches ) ) {
					$send['avatar_src'] = $matches[1];
				}

				$checked[ $key ] = $send;
			}
		}
	}

	if ( ! empty( $checked ) ) {
		$response['wp-check-locked-posts'] = $checked;
	}

	return $response;
}