📄 原始资料 | 展开查看原始 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;
} );
补充说明
更多细节可参考 官方文档。