回答:
ドキュメントを読むFALSE
と、データがなければ関数は戻ります。変数にisset()
割り当てFALSE
ているため、実際には何かに設定されているため、実際には失敗します。正しい構文は次のとおりです。
$field = field_get_items('node', $node, 'field_post_image');
if ($field) {
//Do something with the field
}
else{
//There are no results
}
次のスニペットを使用して、フィールドが空かどうかを確認できます。
$info = field_info_field($field_name);
$function = $info['module'] . '_field_is_empty';
if (function_exists($function)) {
$value = field_get_items('node', $node, $field_name);
$is_empty = $function($value[0], $info);
}
このコードは、さまざまな条件下でさまざまなフィールドが空と見なされるため、より安全です。参照、例えば、差file_field_is_empty() 、number_field_is_empty() 、及びtaxonomy_field_is_empty() :taxonomy_field_is_empty()
チェックTIDの特性$item
パラメータ、一方、number_field_is_empty()
チェック値同じパラメータのプロパティ。カスタムフィールドでは、フィールドが空であると見なすために、より複雑な条件を検証する必要があります。
ドキュメントに記載されているhook_field_is_empty()の説明は次のとおりです。
フィールドタイプの空のアイテムを構成するものを定義します。