やったこと

webサービスを作るときに考えたことを垂れ流します

【Wordpress】カスタムフィールドの存在確認チェックは要注意!

ワードプレスの「get_post_meta()」という関数がありますよね・・?

記事のカスタムフィールドの値を取得するための関数です。

この関数で、存在しないカスタムフィールドを取得したときの戻り値をチェックするとき、要注意が必要です。

戻り値には「null」ではなくて、「""」が入っています。

なので、下記のように「isset」などを使って存在確認チェックをしようとすると、痛い目を見てしまいます・・。

$key = 'hogehoge_count';
$count = get_post_meta(get_the_ID(), $key, true);

//これではダメ!
if (!isset($count)){
  echo("存在しません!");
}

//これが正しい!!
if ($count  == ""){
  echo("存在しません!");
}

公式ページにも、引数三項目にtrueを入れたときは、戻りを文字列で返すと書いてありますね。
関数リファレンス/get post meta - WordPress Codex 日本語版

なんというビックリ実装・・びっくりした~!

以上!