Bricks 中文文档:bricks/frontend/before_render_data

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

📄 原始资料  |  展开查看原始 JSON(bricks-frontend-before_render_data.json)
{
  "name": "bricks/frontend/before_render_data",
  "kind": "action",
  "url": "https://academy.bricksbuilder.io/developer/hooks/actions/bricks-frontend-before_render_data/",
  "scraped_at": "2026-08-29",
  "hook_name": "bricks/frontend/before_render_data",
  "description": {
    "en": "Runs before the Bricks\\Frontend::render_data method starts generating the HTML for a set of elements. This action is undocumented in the official docs but useful for removing plugin actions/filters that might interfere with Bricks rendering.",
    "zh": "在 Bricks\\Frontend::render_data 方法为一组元素开始生成 HTML 之前触发。此动作在官方文档中未记录,但常用于移除可能干扰 Bricks 渲染的插件动作/筛选。"
  },
  "parameters": [
    {
      "name": "elements",
      "type": "array",
      "type_zh": null,
      "description": {
        "en": "The array of elements to be rendered.",
        "zh": "即将渲染的元素数组。"
      }
    },
    {
      "name": "area",
      "type": "string",
      "type_zh": null,
      "description": {
        "en": "The area being rendered (e.g., ‘content’, ‘header’, ‘footer’).",
        "zh": "正在渲染的区域(例如 'content'、'header'、'footer')。"
      }
    }
  ],
  "example_usage": "add_action( 'bricks/frontend/before_render_data', function( $elements, $area ) {\n    // Remove actions/filters that interfere with Bricks rendering\n    // remove_filter( 'the_content', 'my_plugin_content_filter' );\n\n\n    // Example: Log render start\n    // error_log( \"Starting rendering area: $area\" );\n} );"
}

前言

在 Bricks\Frontend::render_data 方法为一组元素开始生成 HTML 之前触发。此动作在官方文档中未记录,但常用于移除可能干扰 Bricks 渲染的插件动作/筛选。

用法

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

add_action( 'bricks/frontend/before_render_data', function( $elements, $area ) {
    // Remove actions/filters that interfere with Bricks rendering
    // remove_filter( 'the_content', 'my_plugin_content_filter' );


    // Example: Log render start
    // error_log( "Starting rendering area: $area" );
} );

参数

  • $elements (array):即将渲染的元素数组。
  • $area (string):正在渲染的区域(例如 ‘content’、’header’、’footer’)。

示例代码

官方示例用法

add_action( 'bricks/frontend/before_render_data', function( $elements, $area ) {
    // Remove actions/filters that interfere with Bricks rendering
    // remove_filter( 'the_content', 'my_plugin_content_filter' );


    // Example: Log render start
    // error_log( "Starting rendering area: $area" );
} );

根据条件短路返回原值

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

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

补充说明

更多细节可参考 官方文档