🆕 Bricks 2.4 已发布:查询循环性能提升 40%,迁移教程同步更新 →

首页 / 中文教程 / 教程

Bricks 查询结果数量标签 {query_results_count}:循环外也能判断有无结果

教程:Bricks 查询结果数量标签 {query_results_count}:循环外也能判断有无结果——dynamic data 附完整代码可直接复用,适合外贸独立站与 WordPress 开发者。

Ray ChanRay Chan·2026-08-12·约 2 分钟
目录
  1. 1.痛点:循环外无法判断查询有没有结果
  2. 2.内置标签:{query_results_count}
  3. 3.实战:文章数为 0 时隐藏整个区块
  4. 4.适用范围与注意事项

痛点:循环外无法判断查询有没有结果

做 Bricks 站点时有个高频需求:查询没有结果时,整个区块(含标题)都不显示。比如首页放一个“最新项目”区块,项目文章一篇都没有时,光秃秃的标题和空布局很难看。

在 Bricks 1.9.1 之前,想判断某个查询有没有结果,只能再写一个自定义函数、手工复制一遍同样的查询参数,然后挂到 Dynamic data 条件上用——又笨又容易两头不同步。这个痛点直到 Bricks 1.9.1 才真正解决。

内置标签:{query_results_count}

Bricks 1.9.1 新增了动态数据标签:

{ query_results_count:bricksid }

其中 bricksid 是开启了查询循环(Query Loop)的那个元素的 Bricks ID。这个标签会返回该查询的结果数量。

关键点在于:它在循环内外都能用。循环(Query Loop)内部其实早就可以用 {query_results_count} 显示结果数,但那个只能在循环上下文里取当前循环的数量;{query_results_count:bricksid} 靠元素 ID 定位任意查询,所以在循环外面、甚至页面上任何位置都能拿到指定查询的结果数——这正是它被称为“改变游戏规则”的原因。

实战:文章数为 0 时隐藏整个区块

假设你的页面结构是:Section → Container(标题)→ Block(带 Query Loop,查询 CPT 项目文章),查询设置 5 篇最新项目。

现在要让整个 Section 只在至少有 1 篇已发布项目文章时输出。做法:给 Section 加一个 Dynamic data 条件,填入:

{ query_results_count:hmvylb }

其中 hmvylb 是开启 Query Loop 的那个 Block 的 Bricks ID。条件会解析为查询结果数量:数量 ≥ 1 时条件成立、区块显示;数量为 0 时区块连同标题一起隐藏。

原理:Bricks 的动态数据条件支持数值比较(大于 0 / 等于 0 等)。{query_results_count:bricksid} 把“查询有没有结果”变成“数量是否为 0”,从而让条件系统可以直接消费。整条链路都是 Bricks 内置能力,不需要任何 PHP 代码。

相关阅读:

适用范围与注意事项

  • 适用于所有查询类型:不只是默认的 Posts 查询,ACF Repeater、Meta Box 等自定义查询类型的结果数同样能取到。

  • Bricks ID 哪里找:在 Bricks 编辑器里选中元素,右上角元素面板里能看到该元素的 ID(如 hmvylb)。它对应 DOM 中该元素的 id 属性。

  • 如果查询元素在页面里会被循环渲染多次(比如嵌套循环里的项),取到的是首次渲染的查询上下文,使用时留意。

小结:{query_results_count:bricksid} 是 Bricks 1.9.1 给进阶用户的一份大礼——“循环外判断任意查询有无结果”这个过去要写 PHP 才能解决的问题,现在一个动态标签加一个条件搞定,且与 ACF Repeater 等自定义查询兼容。配合同样在 1.9.1 加入的“PHP 查询编辑器支持动态数据”,这一版对开发者来说含金量极高。遇到“无结果隐藏整块”的需求,先想它,别急着写代码。

常见误区

用 {query_results_count} 先确认版本门槛:它从 Bricks 1.9.1 开始才有,老版本只能靠自定义函数复制查询参数来判断,别在旧站上硬套。第二个坑是Bricks ID 找错:要在编辑器里选中元素、看右上角面板显示的 ID(如 hmvylb),不是随便编的;三是嵌套循环里取到的可能是首次渲染的查询上下文,元素被循环渲染多次时,标签取到的是第一个,需要按实际结构验证。它对所有查询类型(含 ACF Repeater、Meta Box 自定义查询)都有效,不只是默认 Posts 查询。

常见问题(FAQ)

Q:这个标签从哪个版本开始有? A:Bricks 1.9.1 起才有;更早版本只能写自定义函数复制查询参数来判断。

Q:标签里的 Bricks ID 去哪找? A:在编辑器选中元素,右上角元素面板会显示该元素 ID(如 hmvylb),对应 DOM 的 id。

Q:嵌套循环里取到的结果对吗? A:元素被循环多次渲染时,取到的是首次渲染的查询上下文,要按实际结构验证。

Q:自定义查询(ACF/Meta Box)也能用? A:能,不只默认 Posts 查询,ACF Repeater、Meta Box 等自定义查询的结果数同样能取。

延伸阅读

Ray Chan

站长

Ray Chan

WordPress Developer & Bricks Specialist

WordPress developer with 10+ years of client builds. Switched to Bricks in 2023 — now builds fast WordPress sites and migrates legacy Elementor/Divi projects.

延伸阅读