Get Bricks

Filter: bricks/terms/query_vars

Bricks terms query variables can be manipulated before the query runs like so:

add_filter( 'bricks/terms/query_vars', function( $query_vars, $settings, $element_id ) {
    $query_vars['exclude'] = 23; // Exclude term id 23

    return $query_vars;
}, 10, 3 );

The filter callback receives three arguments:

  • $query_vars an associative array used to feed the WP_Term_Query class
  • $settings an associative array containing the element settings set in the builder
  • $element_id is a string containing the unique element ID

Example 1: Exclude the current term from the query

Inside a term archive page, to exclude the current term from the query:

// Exclude current term from the terms query loop on term archive pages.
add_filter( 'bricks/terms/query_vars', function( $query_vars, $settings, $element_id ) {
    if ( $element_id !== 'uxtkgn' ) {
        return $query_vars;
    }

    $query_vars['exclude'] = get_queried_object_id();

    return $query_vars;
}, 10, 3 );

where uxtkgn is the Bricks ID of the element on which query loop is enabled.

Example 2: Get terms assigned to a post

In this example, we would like to get only the terms assigned to a specific post ID (the same as the WordPress function wp_get_object_terms() output):

add_filter( 'bricks/terms/query_vars', function( $query_vars, $settings, $element_id ) {
    if ( $element_id !== 'mjvhur' ) {
        return $query_vars;
    }

    $query_vars['object_ids'] = get_the_ID();

    return $query_vars;
}, 10, 3 );