Bricks 中文文档:bricks/query_filters/filter_query_vars

📄 原始资料  |  展开查看原始 JSON(bricks-query_filters-filter_query_vars.json){ “name”: “bricks/query_filters/filter_query_vars”, “kind”: “filter”, “url”: “https://academy.bricksbuilder.io/developer/hooks/filters/bricks-query_filters-filter_query_vars/”, “scraped_at”: “2026-08-29”, “hook_name”: “bric…

📄 原始资料  |  展开查看原始 JSON(bricks-query_filters-filter_query_vars.json)
{
  "name": "bricks/query_filters/filter_query_vars",
  "kind": "filter",
  "url": "https://academy.bricksbuilder.io/developer/hooks/filters/bricks-query_filters-filter_query_vars/",
  "scraped_at": "2026-08-29",
  "hook_name": "bricks/query_filters/filter_query_vars",
  "description": {
    "en": "Filters the query variables generated by an active filter element before they are applied to the query loop. This allows you to customize how specific filters affect the query.",
    "zh": "在由激活的筛选元素生成的查询变量被应用到查询循环之前对其进行筛选。允许你自定义特定筛选如何影响查询。"
  },
  "parameters": [
    {
      "name": "query_vars",
      "type": "array",
      "type_zh": null,
      "description": {
        "en": "The WP_Query arguments generated by this filter.",
        "zh": "由此筛选器生成的 WP_Query 参数。"
      }
    },
    {
      "name": "filter",
      "type": "array",
      "type_zh": null,
      "description": {
        "en": "The active filter data (settings, selected values).",
        "zh": "激活的筛选数据(设置、所选值)。"
      }
    },
    {
      "name": "query_id",
      "type": "string",
      "type_zh": null,
      "description": {
        "en": "The ID of the query loop being filtered.",
        "zh": "正在被筛选的查询循环 ID。"
      }
    },
    {
      "name": "filter_index",
      "type": "int",
      "type_zh": null,
      "description": {
        "en": "The index of this filter in the active filters list.",
        "zh": "此筛选器在激活筛选列表中的索引。"
      }
    }
  ],
  "example_usage": "add_filter( 'bricks/query_filters/filter_query_vars', function( $query_vars, $filter, $query_id, $filter_index ) {\n    // Example: Add extra query args for a specific filter\n    if ( $filter['settings']['fieldName'] === 'my_special_filter' ) {\n        $query_vars['post_status'] = 'publish';\n    }\n\n\n    return $query_vars;\n}, 10, 4 );"
}

前言

在由激活的筛选元素生成的查询变量被应用到查询循环之前对其进行筛选。允许你自定义特定筛选如何影响查询。

用法

将代码加入子主题的 functions.php

add_filter( 'bricks/query_filters/filter_query_vars', function( $query_vars, $filter, $query_id, $filter_index ) {
    // Example: Add extra query args for a specific filter
    if ( $filter['settings']['fieldName'] === 'my_special_filter' ) {
        $query_vars['post_status'] = 'publish';
    }


    return $query_vars;
}, 10, 4 );

参数

  • $query_vars (array):由此筛选器生成的 WP_Query 参数。
  • $filter (array):激活的筛选数据(设置、所选值)。
  • $query_id (string):正在被筛选的查询循环 ID。
  • $filter_index (int):此筛选器在激活筛选列表中的索引。

示例代码

筛选返回值

add_filter( 'bricks/query_filters/filter_query_vars', function( $query_vars, $filter, $query_id, $filter_index ) {
    // Example: Add extra query args for a specific filter
    if ( $filter['settings']['fieldName'] === 'my_special_filter' ) {
        $query_vars['post_status'] = 'publish';
    }


    return $query_vars;
}, 10, 4 );

根据条件短路返回原值

根据条件跳过或修改返回值:

add_filter( 'bricks/query_filters/filter_query_vars', function( $value, $query_vars ) {
    if ( is_admin() ) { return $value; }
    // TODO: custom logic here
    return $value;
} );

补充说明

更多细节可参考 官方文档