# post_exists()

URL: https://chugunov.pro/api-wordpress/functions/post_exists/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.0.0.

## Сигнатура

```php
post_exists( string $title, string $content = '', string $date = '', string $type = '', string $status = '' ): int
```

## Описание

Определяет, существует ли запись, на основе заголовка, содержимого, даты и типа.

## Параметры

- `$title` `string` — обязательный. Заголовок записи.
- `$content` `string` — необязательный, по умолчанию `''`. Содержимое записи.
- `$date` `string` — необязательный, по умолчанию `''`. Дата записи.
- `$type` `string` — необязательный, по умолчанию `''`. Тип записи.
- `$status` `string` — необязательный, по умолчанию `''`. Статус записи.

## Возвращаемое значение

`int`

## Исходный код

Файл: `wp-admin/includes/post.php:858`

```php
function post_exists( $title, $content = '', $date = '', $type = '', $status = '' ) {
	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' ) );
	$post_type    = wp_unslash( sanitize_post_field( 'post_type', $type, 0, 'db' ) );
	$post_status  = wp_unslash( sanitize_post_field( 'post_status', $status, 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( $type ) ) {
		$query .= ' AND post_type = %s';
		$args[] = $post_type;
	}

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

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

	return 0;
}
```

## История изменений

- 5.8.0 — Added the $status parameter.
- 5.2.0 — Added the $type parameter.
- 2.0.0 — Introduced.

## Связанные

Использует: [`sanitize_post_field`](https://chugunov.pro/api-wordpress/functions/sanitize_post_field/), [`wp_unslash`](https://chugunov.pro/api-wordpress/functions/wp_unslash/), `wpdb::get_var`, `wpdb::prepare`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/post_exists/
