Skip to main content

benecaster_search_query_args

Filter Free

Filters the structured query arguments passed to the episode search before the SQL query is built. Fires for both the search REST endpoint and the benecaster_search shortcode, in the search controller after tier resolution, giving you control over which show is searched, which tiers are accessible, how many results per page are returned, and the search term itself.

This is a Free filter. The $args array contains five keys: show_id, q, tiers, page, and per_page. Modified values are extracted individually before the search runs.

Parameters

Name Type Default Description
$args array Query arguments: {show_id: int, q: string, tiers: string[], page: int, per_page: int}
$request WP_REST_Request The current REST request object

Returns: array

Examples

Cap results per page for nav widget

add_filter( 'benecaster_search_query_args', function( $args, $request ) {
    // Cap results at 5 per page when called from the nav search widget.
    if ( $request->get_header( 'X-Benecaster-Context' ) === 'nav-widget' ) {
        $args['per_page'] = 5;
    }
    return $args;
}, 10, 2 );

Expand tier access for specific show

add_filter( 'benecaster_search_query_args', function( array $args, WP_REST_Request $request ): array {
    if ( $args['show_id'] === 42 ) {
        $args['tiers'] = [ 'public', 'supporter', 'founding' ];
    }
    return $args;
}, 10, 2 );

Affects

  • GET /benecaster/v1/search REST endpoint
  • [benecaster_search](/shortcodes/benecaster-search/) shortcode