rest_is_field_included()


WordPressのrest_is_field_included()関数は、REST APIリクエストで特定のフィールドが含まれているかどうかをチェックします。

構文

rest_is_field_included( string $field, array $fields );

引数の説明:

  • $field(string)— チェックするフィールド名
  • $fields(array)— フィールドの配列または文字列(カンマ区切り)

例1: 基本的なフィールドチェック

RESTリクエストで’title’フィールドが含まれているか確認します。

if(rest_is_field_included('title',$_GET['_fields'])){echo 'タイトルが含まれています';}

例2: 複数フィールドのチェック

‘content’と’excerpt’の両方がリクエストに含まれているか確認します。

if(rest_is_field_included('content,excerpt',$_GET['_fields'])){/*処理*/}

例3: カスタムフィールドの確認

カスタムフィールド’my_custom_field’が存在するかチェックします。

$fields=array('title','content','my_custom_field');if(rest_is_field_included('my_custom_field',$fields)){/*処理*/}

例4: フィールドが除外されている場合の処理

‘featured_image’フィールドが含まれていない場合に代替処理を実行します。

if(!rest_is_field_included('featured_image',$_GET['_fields'])){add_filter('rest_prepare_post',function($response){/*処理*/});}

例5: 条件付きフィールド追加

‘author’フィールドがリクエストに含まれている場合のみ、追加データを返します。

if(rest_is_field_included('author',$_GET['_fields'])){$data['author_info']=get_userdata($post->post_author);}

例6: バッチ処理での使用

複数フィールドを配列で指定してチェックします。

$required_fields=array('id','slug','status');foreach($required_fields as $field){if(!rest_is_field_included($field,$fields)){wp_send_json_error();}}

例7: フィールドチェックを使った最適化

必要なフィールドのみクエリを最適化します。

if(!rest_is_field_included('content',$fields)){add_filter('posts_fields_request','__return_empty_string');}

注意点

  • この関数はREST APIコンテキストでのみ動作します
  • フィールド名は正確に一致させる必要があります
  • 権限チェックは別途行う必要があります

関連機能: