説明
post_exists() は、指定したタイトル・内容・日時の投稿が既に存在するかを調べる関数です。
基本構文
post_exists( string $title, string $content = '', string $date = '', string $type = '', string $status = '' ): int
引数
$title:タイトル$content:本文$date:投稿日$type:投稿タイプ$status:ステータス
戻り値
見つかれば投稿ID、なければ 0。
使い方(サンプル)
if ( ! post_exists( '会社概要' ) ) {
// 作成処理
}
注意点
- 管理画面用の関数のため、フロントで使うには
wp-admin/includes/post.phpの読み込みが必要です。 - 重複登録の防止に使えます。
実務での使いどころ
- 同じタイトルの投稿が、すでにあるかを確認するとき(インポートの重複防止など)。
よくあるミスと対処
- この関数は管理画面用のファイルで定義されている。フロント側で使うと、未定義の関数でエラーになる。
- 戻り値は投稿IDで、見つからないときは
0。falseとの比較にしている。
NG例
// フロント側のコードで呼ぶ
$id = post_exists( 'タイトル' ); // 未定義の関数でエラーになる
OK例
require_once ABSPATH . 'wp-admin/includes/post.php';
$id = post_exists( 'タイトル' );
if ( 0 === $id ) {
// 同じタイトルの投稿はない
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| タイトルで重複を確認 | post_exists() |
| スラッグで投稿を取得 | get_page_by_path() |
| URLから投稿IDを取得 | url_to_postid() |
関連項目
wp_insert_post()、get_page_by_path()
公式リファレンス:post_exists() | Function | WordPress Developer Resources

コメント