I solved following this answer and writing:
public function query_wasb_messages_by_status( $args, $request ) {
if ( ! is_null( $request->get_param( 'message_status' ) ) ) {
$args['meta_query'] = array(
'_wasb_message_status' => array(
'key' => '_wasb_message_status',
'value' => (int) $request->get_param( 'message_status' ),
'compare' => '=',
'type' => 'numeric'
)
);
}
return $args;
}
add_filter( 'rest_wasb_message_query', array( $this, 'query_wasb_messages_by_status'), 10, 2 );
My problem is I used status
as parameter name but status
already exists for posts (‘draft’, ‘published’, etc…) so I changed the name to message_status
…