"Filter: bricks/screen_conditions/scores"
Bricks با توجه به شرایطی که شما تعریف کرده اید، سبک قالب و تم را برای یک صفحه خاص انتخاب میکند.
در داخل این کار از طریق یک سیستم امتیازدهی از 0 تا 10 انجام میشود. 0 کمترین خاص است. 10 که خاص ترین است (به عنوان مثال شناسه پست خاص).
برای هر شرط سبک قالب/موضوع که میتواند در زمینه خاصی اعمال شود، سبک قالب/موضوع امتیاز خاصی کسب میکند. پس از تجزیه و تحلیل همه قالب ها/سبک های تم، Bricks یکی را انتخاب میکند که بالاترین امتیاز را داشته باشد.
اگر نیاز به اضافه کردن شرایط قالب جدید با استفاده از فیلتر builder/settings/template/controls_data یا bricks/theme_styles/controls برای سبکهای تم دارید، باید به منطق امتیازدهی متصل شوید تا الگوها/سبکهای تم را بر اساس شرایط سفارشی امتیاز دهید.
اینجاست که فیلتر bricks/screen_conditions/scores مفید است، مانند:
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 );
مثال 1: امتیاز یک نقش نویسنده خاص را در قالب آرشیو نویسنده اضافه کنید
پس از افزودن کنترل با استفاده از builder/settings/template/controls_data (مثال 1 را بررسی کنید)، اکنون باید bricks/screen_conditions/scores را برای امتیاز دادن به الگو بر اساس شرایط، مانند این، قلاب کنیم:
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 );