📄 原始资料 | 展开查看原始 JSON(bricks-query_filters-sort_query_vars.json){ “name”: “bricks/query_filters/sort_query_vars”, “kind”: “filter”, “url”: “https://academy.bricksbuilder.io/developer/hooks/filters/bricks-query_filters-sort_query_vars/”, “scraped_at”: “2026-08-29”, “hook_name”: “bricks/que…
📄 原始资料 | 展开查看原始 JSON(bricks-query_filters-sort_query_vars.json)
{
"name": "bricks/query_filters/sort_query_vars",
"kind": "filter",
"url": "https://academy.bricksbuilder.io/developer/hooks/filters/bricks-query_filters-sort_query_vars/",
"scraped_at": "2026-08-29",
"hook_name": "bricks/query_filters/sort_query_vars",
"description": {
"en": "Filters the query variables generated by an active “Sort” filter element. This allows you to implement custom sorting logic (e.g., sorting by a custom meta key or a calculated value).",
"zh": "筛选由激活的“Sort”筛选元素生成的查询变量。允许你实现自定义排序逻辑(例如按自定义 meta key 或计算值排序)。"
},
"parameters": [
{
"name": "query_vars",
"type": "array",
"type_zh": null,
"description": {
"en": "The WP_Query arguments generated by the sort filter (e.g., ['orderby' => '...', 'order' => '...'] ).",
"zh": "由排序筛选器生成的 WP_Query 参数(例如 ['orderby' => '...', 'order' => '...'])。"
}
},
{
"name": "filter",
"type": "array",
"type_zh": null,
"description": {
"en": "The active filter data, including selected sort option.",
"zh": "激活的筛选数据,包括所选排序选项。"
}
},
{
"name": "query_id",
"type": "string",
"type_zh": null,
"description": {
"en": "The ID of the query loop being sorted.",
"zh": "正在被排序的查询循环 ID。"
}
},
{
"name": "filter_index",
"type": "int",
"type_zh": null,
"description": {
"en": "The index of this filter in the active filters list.",
"zh": "此筛选器在激活筛选列表中的索引。"
}
}
],
"example_usage": "add_filter( 'bricks/query_filters/sort_query_vars', function( $query_vars, $filter, $query_id, $filter_index ) {\n // Example: Custom sort by 'popularity'\n if ( $filter['value'] === 'popularity' ) {\n $query_vars['orderby'] = 'meta_value_num';\n $query_vars['meta_key'] = 'post_views_count';\n $query_vars['order'] = 'DESC';\n }\n\n\n return $query_vars;\n}, 10, 4 );"
}
前言
筛选由激活的“Sort”筛选元素生成的查询变量。允许你实现自定义排序逻辑(例如按自定义 meta key 或计算值排序)。
用法
将代码加入子主题的 functions.php:
add_filter( 'bricks/query_filters/sort_query_vars', function( $query_vars, $filter, $query_id, $filter_index ) {
// Example: Custom sort by 'popularity'
if ( $filter['value'] === 'popularity' ) {
$query_vars['orderby'] = 'meta_value_num';
$query_vars['meta_key'] = 'post_views_count';
$query_vars['order'] = 'DESC';
}
return $query_vars;
}, 10, 4 );
参数
$query_vars (array):由排序筛选器生成的 WP_Query 参数(例如 [‘orderby’ => ‘…’, ‘order’ => ‘…’])。
$filter (array):激活的筛选数据,包括所选排序选项。
$query_id (string):正在被排序的查询循环 ID。
$filter_index (int):此筛选器在激活筛选列表中的索引。
示例代码
筛选返回值
add_filter( 'bricks/query_filters/sort_query_vars', function( $query_vars, $filter, $query_id, $filter_index ) {
// Example: Custom sort by 'popularity'
if ( $filter['value'] === 'popularity' ) {
$query_vars['orderby'] = 'meta_value_num';
$query_vars['meta_key'] = 'post_views_count';
$query_vars['order'] = 'DESC';
}
return $query_vars;
}, 10, 4 );
根据条件短路返回原值
根据条件跳过或修改返回值:
add_filter( 'bricks/query_filters/sort_query_vars', function( $value, $query_vars ) {
if ( is_admin() ) { return $value; }
// TODO: custom logic here
return $value;
} );
补充说明
更多细节可参考 官方文档。