Filter: bricks/screen_conditions/scores
Bricks selects the template & theme style for a specific page according to the conditions you’ve defined.
Internally this is done via a scoring system from 0 to 10. 0 is the least specific. 10 being the most specific (e.g. specific post ID).
For each template/theme style condition that could apply to a certain context, the template/theme style earns a specific score. After analyzing all templates/theme styles, Bricks chooses the one with the highest score.
If you need to add new template conditions using the filter builder/settings/template/controls_data or bricks/theme_styles/controls for theme styles, you then need to hook into the scoring logic to score the templates/theme styles based on the custom conditions.
This is where the bricks/screen_conditions/scores filter comes in handy, like so:
add_filter( 'bricks/screen_conditions/scores', function( $scores, $condition, $post_id, $preview_type ) { // Run custom logic to score the template/theme style $condition // $scores[] = 5;
return $scores;}, 10, 4 );Example 1: Add the score for a specific author role in an author archive template
After adding the control using the builder/settings/template/controls_data (check example 1), we now need to hook in bricks/screen_conditions/scores to score the template based on the condition, like so:
add_filter( 'bricks/screen_conditions/scores', function( $scores, $condition, $post_id, $preview_type ) { if ( is_author() && $condition['main'] === 'archiveType' && isset( $condition['archiveType'] ) && in_array( 'author', $condition['archiveType'] ) && isset( $condition['archiveAuthorRoles'] ) ) { $user = get_queried_object();
if ( ! empty( $user->roles ) && is_array( $user->roles ) ) { foreach ( $user->roles as $role_name ) { if ( in_array( $role_name, $condition['archiveAuthorRoles'] ) ) { $scores[] = 9; } } } }
return $scores;}, 10, 4 );Was this helpful?
A quick vote and short notes help us improve these docs faster.
Leave a note for us
Please do not include passwords, license keys, or personal data. We store submitted notes to improve the docs.
Thanks for sharing feedback. We're using it to improve these docs.