前言
强制 Bricks\Query::is_looping() 返回 true。在 AJAX 上下文(如弹窗)中很有用,在这些上下文中你需要模拟处于查询循环中以正确渲染依赖于循环上下文的动态数据。
用法
将代码加入子主题的 functions.php:
add_filter( 'bricks/query/force_is_looping', function( $force, $query_id, $element_id ) {
// Example: Force looping for a specific element ID
if ( $element_id === 'my_element_id' ) {
return true;
}
return $force;
}, 10, 3 );
参数
$force(bool):是否强制 is_looping 状态。默认为 false。$query_id(string):正在被检查的查询 ID。$element_id(string):正在被检查的元素 ID。
示例代码
筛选返回值
add_filter( 'bricks/query/force_is_looping', function( $force, $query_id, $element_id ) {
// Example: Force looping for a specific element ID
if ( $element_id === 'my_element_id' ) {
return true;
}
return $force;
}, 10, 3 );
根据条件短路返回原值
根据条件跳过或修改返回值:
add_filter( 'bricks/query/force_is_looping', function( $value, $force ) {
if ( is_admin() ) { return $value; }
// TODO: custom logic here
return $value;
} );
补充说明
更多细节可参考 官方文档。