📄 原始资料 | 展开查看原始 JSON(bricks-query_filters_indexer-post-filter_source.json){ “name”: “bricks/query_filters_indexer/post/{filter_source}”, “kind”: “filter”, “url”: “https://academy.bricksbuilder.io/developer/hooks/filters/bricks-query_filters_indexer-post-filter_source/”, “scraped_at”: “20…
📄 原始资料 | 展开查看原始 JSON(bricks-query_filters_indexer-post-filter_source.json)
{
"name": "bricks/query_filters_indexer/post/{filter_source}",
"kind": "filter",
"url": "https://academy.bricksbuilder.io/developer/hooks/filters/bricks-query_filters_indexer-post-filter_source/",
"scraped_at": "2026-08-29",
"hook_name": "bricks/query_filters_indexer/post/{filter_source}",
"description": {
"en": "Filters the index rows generated for a post by the Query Filters Indexer when processing a specific filter job. The {$filter_source} portion of the hook name corresponds to the filter source (e.g., wcField or a custom source). Each row must include filter_id , object_id , object_type , filter_value , filter_value_display , filter_value_id , and filter_value_parent .",
"zh": "当处理特定筛选任务时,筛选 Query Filters Indexer 为文章生成的索引行。钩子名称中的 {$filter_source} 部分对应于筛选源(例如 wcField 或自定义源)。每行必须包含 filter_id、object_id、object_type、filter_value、filter_value_display、filter_value_id 和 filter_value_parent。"
},
"parameters": [
{
"name": "rows",
"type": "array",
"type_zh": null,
"description": {
"en": "Array of index rows to be inserted. Default is [] .",
"zh": "将被插入的索引行数组。默认为 []。"
}
},
{
"name": "post",
"type": "WP_Post|int",
"type_zh": null,
"description": {
"en": "The post object or ID being indexed.",
"zh": "正在被索引的文章对象或 ID。"
}
},
{
"name": "filter_id",
"type": "string",
"type_zh": null,
"description": {
"en": "The ID of the filter element.",
"zh": "筛选元素的 ID。"
}
},
{
"name": "filter_settings",
"type": "array",
"type_zh": null,
"description": {
"en": "The settings of the filter element.",
"zh": "筛选元素的设置。"
}
}
],
"example_usage": "add_filter( 'bricks/query_filters_indexer/post/my_custom_source', function( $rows, $post, $filter_id, $filter_settings ) {\n // Generate index rows for custom logic\n $value = get_post_meta( $post->ID, 'my_custom_field', true );\n\n\n if ( $value ) {\n $rows[] = [\n 'filter_id' => $filter_id,\n 'object_id' => $post->ID,\n 'object_type' => 'post',\n 'filter_value' => $value,\n 'filter_value_display' => $value,\n 'filter_value_id' => 0,\n 'filter_value_parent' => 0,\n ];\n }\n\n\n return $rows;\n}, 10, 4 );"
}
前言
当处理特定筛选任务时,筛选 Query Filters Indexer 为文章生成的索引行。钩子名称中的 {$filter_source} 部分对应于筛选源(例如 wcField 或自定义源)。每行必须包含 filter_id、object_id、object_type、filter_value、filter_value_display、filter_value_id 和 filter_value_parent。
用法
将代码加入子主题的 functions.php:
add_filter( 'bricks/query_filters_indexer/post/my_custom_source', function( $rows, $post, $filter_id, $filter_settings ) {
// Generate index rows for custom logic
$value = get_post_meta( $post->ID, 'my_custom_field', true );
if ( $value ) {
$rows[] = [
'filter_id' => $filter_id,
'object_id' => $post->ID,
'object_type' => 'post',
'filter_value' => $value,
'filter_value_display' => $value,
'filter_value_id' => 0,
'filter_value_parent' => 0,
];
}
return $rows;
}, 10, 4 );
参数
$rows (array):将被插入的索引行数组。默认为 []。
$post (WP_Post|int):正在被索引的文章对象或 ID。
$filter_id (string):筛选元素的 ID。
$filter_settings (array):筛选元素的设置。
示例代码
筛选返回值
add_filter( 'bricks/query_filters_indexer/post/my_custom_source', function( $rows, $post, $filter_id, $filter_settings ) {
// Generate index rows for custom logic
$value = get_post_meta( $post->ID, 'my_custom_field', true );
if ( $value ) {
$rows[] = [
'filter_id' => $filter_id,
'object_id' => $post->ID,
'object_type' => 'post',
'filter_value' => $value,
'filter_value_display' => $value,
'filter_value_id' => 0,
'filter_value_parent' => 0,
];
}
return $rows;
}, 10, 4 );
根据条件短路返回原值
根据条件跳过或修改返回值:
add_filter( 'bricks/query_filters_indexer/post/{filter_source}', function( $value, $rows ) {
if ( is_admin() ) { return $value; }
// TODO: custom logic here
return $value;
} );
补充说明
更多细节可参考 官方文档。