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 );