Bricks 中文文档:bricks/query/cache_key

标签TAGS: 

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

📄 原始资料  |  展开查看原始 JSON(bricks-query-cache_key.json)
{
  "name": "bricks/query/cache_key",
  "kind": "filter",
  "url": "https://academy.bricksbuilder.io/developer/hooks/filters/bricks-query-cache_key/",
  "scraped_at": "2026-08-29",
  "hook_name": "bricks/query/cache_key",
  "description": {
    "en": "Filters the cache key used for a Bricks query loop. Use it when external context, such as language, should split query cache entries.",
    "zh": "筛选用于 Bricks 查询循环的缓存键。当外部上下文(如语言)应分割查询缓存条目时使用。"
  },
  "parameters": [
    {
      "name": "cache_key",
      "type": "string",
      "type_zh": null,
      "description": {
        "en": "The generated query cache key.",
        "zh": "已生成的查询缓存键。"
      }
    },
    {
      "name": "query",
      "type": "Bricks\\Query",
      "type_zh": null,
      "description": {
        "en": "The Bricks query instance.",
        "zh": "Bricks 查询实例。"
      }
    }
  ],
  "example_usage": "add_filter( 'bricks/query/cache_key', function( $cache_key, $query ) {\n    if ( function_exists( 'pll_current_language' ) ) {\n        $cache_key .= '_' . pll_current_language();\n    }\n\n\n    return $cache_key;\n}, 10, 2 );"
}

前言

筛选用于 Bricks 查询循环的缓存键。当外部上下文(如语言)应分割查询缓存条目时使用。

用法

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

add_filter( 'bricks/query/cache_key', function( $cache_key, $query ) {
    if ( function_exists( 'pll_current_language' ) ) {
        $cache_key .= '_' . pll_current_language();
    }


    return $cache_key;
}, 10, 2 );

参数

  • $cache_key (string):已生成的查询缓存键。
  • $query (Bricks\Query):Bricks 查询实例。

示例代码

筛选返回值

add_filter( 'bricks/query/cache_key', function( $cache_key, $query ) {
    if ( function_exists( 'pll_current_language' ) ) {
        $cache_key .= '_' . pll_current_language();
    }


    return $cache_key;
}, 10, 2 );

根据条件短路返回原值

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

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

补充说明

更多细节可参考 官方文档