post_exists( string $title, string $content = '', string $date = '', string $type = '', string $status = '' )

Determines if a post exists based on title, content, date and type.


Parameters

$title

(Required) Post title.

$content

(Optional) Post content.

Default value: ''

$date

(Optional) Post date.

Default value: ''

$type

(Optional) Post type.

Default value: ''

$status

(Optional) Post status.

Default value: ''


Return

(int) Post ID if post exists, 0 otherwise.


Source

File: wp-admin/includes/post.php

function post_exists($title, $content = '', $date = '') {
	global $wpdb;

	$post_title = wp_unslash( sanitize_post_field( 'post_title', $title, 0, 'db' ) );
	$post_content = wp_unslash( sanitize_post_field( 'post_content', $content, 0, 'db' ) );
	$post_date = wp_unslash( sanitize_post_field( 'post_date', $date, 0, 'db' ) );

	$query = "SELECT ID FROM $wpdb->posts WHERE 1=1";
	$args = array();

	if ( !empty ( $date ) ) {
		$query .= ' AND post_date = %s';
		$args[] = $post_date;
	}

	if ( !empty ( $title ) ) {
		$query .= ' AND post_title = %s';
		$args[] = $post_title;
	}

	if ( !empty ( $content ) ) {
		$query .= ' AND post_content = %s';
		$args[] = $post_content;
	}

	if ( !empty ( $args ) )
		return (int) $wpdb->get_var( $wpdb->prepare($query, $args) );

	return 0;
}


Changelog

Changelog
Version Description
5.8.0 Added the $status parameter.
5.2.0 Added the $type parameter.
2.0.0 Introduced.