なにこれ
WP REST API v2においてカスタムフィールドを検索する方法
結論
/**
* 検索クエリをカスタム
*/
add_filter( 'rest_foobar_query', 'my_rest_foobar_query', 10, 2 ); // rest_{post_type}_query
function my_rest_foobar_query( $args, $request ) {
// ここにでargsをゴニョゴニョする
return $args;
}
rest_{post_type}_query
のフィルタに追加してやるだけでなんとかなる。$request
はクライアントから送られてきたパラメータ一式が入ってる。
$args
はhttps://developer.wordpress.org/reference/classes/wp_rest_posts_controller/get_items/ を見てみるとWP_Queryに渡す検索条件
つまりどういうことだってばよ
例えばよくある都道府県で検索したい場合の例
通常の投稿に都道府県をカスタムフィールドとして登録している前提
add_filter( 'rest_post_query', 'my_rest_post_query', 10, 2 ); // rest_{post_type}_query
function my_rest_post_query( $args, $request ) {
if ( isset( $request['prefecture'] ) ) {
$args['meta_query'] = array(
array(
"key" => "prefecture",
"value" => $request['prefecture'],
"compare" => "="
)
);
}
}
以上