post_exists() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました