"Filter: bricks/query/force_run"

Bricks عملکرد Query را در 1.9.1 افزایش داده است. در حال حاضر، هر Query منحصر به فرد تنها یک بار در بارگذاری صفحه اجرا می‌شود و پس از آن، نتایج Query مجدداً در همان صفحه استفاده می‌شود. در نتیجه، فیلترهای PHP مربوط به Queryهای خاص دیگر چندین بار فعال نمی‌شوند.

فیلترهای زیر ممکن است تحت تأثیر قرار گیرند:

  • bricks/posts/merge_query
  • bricks/posts/query_vars
  • bricks/terms/query_vars
  • bricks/users/query_vars
  • bricks/query/run
  • bricks/query/result
  • bricks/query/result_count
  • bricks/query/result_max_num_pages

با این وجود، توسعه دهندگان می‌توانند از این فیلتر برای غیرفعال کردن این تنظیمات برای درخواست های خاص در شرایط خاص استفاده کنند.

// Return boolean (default: false)
add_filter( 'bricks/query/force_run', function( $force_run, $query ) {
  // Get element ID
  $element_id  = $query::get_query_element_id();
  // Get element settings
  $settings = $query->settings;

  if ( isset( $settings['usingFacetWP'] ) ) {
    $force_run = true;
  }

  return $force_run;
}, 10, 2 );

از 1.9.2، می‌توانید $query_vars['bricks_force_run'] = true را برای رسیدن به همان نتیجه تعریف کنید. اگر از Bricks Query Editor یا فیلترهای PHP مانند bricks/posts/query_vars و غیره استفاده می‌کنید، این کار مفید خواهد بود.

bricks-query-force-run-query-vars.png