这篇教程探索:用 HappyFiles 整理过的 WordPress 媒体库图片,如何通过 Bricks 的查询循环(query loop)拉取并展示出来。
注意:只有当你想获得比 HappyFiles 自带的「HappyFiles – Gallery」Bricks 元素更多的控制权时,才需要用到这些方案。
目录
方案一:嵌套查询循环
先看一个简单场景:图片放在名为「Business」的文件夹里。
要用 Bricks 查询循环展示这些图片,需要两层查询:外层先循环遍历「Business」这个 HappyFiles 文件夹(分类项 term),内层再查询该文件夹里的 Media 文章类型附件(attachment)。
外层查询设置(查询 HappyFiles 的 business 分类项):
内层查询设置(查询附件,按外层当前分类项过滤):
结构(外层查询循环里嵌套内层查询循环):
要让图片可点击、在灯箱(lightbox)里看大图,给图片元素加上链接设置:
完整结构可以直接复制这份 Section JSON(粘贴到 Bricks 页面/模板即可)。
方案二:单个 PHP 查询循环
如果你只想用一个 Bricks 查询循环,在查询设置里启用 PHP query 并把下面的代码粘贴进去:
// Query attachments in the HappyFiles category
$args = [
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => -1,
'fields' => 'ids',
'no_found_rows' => true,
'tax_query' => [
[
'taxonomy' => 'happyfiles_category',
'field' => 'slug',
'terms' => 'business',
],
],
];
$hf_query = new WP_Query( $args );
$image_ids = $hf_query->posts;
// Return query args for Bricks
if ( ! empty( $image_ids ) ) {
return [
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => -1,
'no_found_rows' => true,
'post__in' => $image_ids,
'orderby' => 'post__in',
];
}
// Return empty result set
return [
'post_type' => 'attachment',
'post__in' => [ 0 ],
];
把 business 换成你的 HappyFiles 文件夹 slug。
保存代码并保存页面。对应结构的 Section JSON 在此。
方案三:配合 BricksExtras Dynamic Lightbox
如果想让某个 HappyFiles 文件夹里的每张图片在灯箱里显示什么内容都由你完全掌控,用 BricksExtras 的 Dynamic Lightbox 元素。
给「Small Image」(小图)加一个 CSS 类 post-lightbox:
确保它链接到 #。
Dynamic Lightbox 设置:
对应的 Section JSON 在此。
想显示图片描述,可以用 x_attachment_description 动态标签(放在花括号里使用)。
BricksExtras 为附件(图片)添加的其他动态标签还有:
- x_attachment_alt_text —— 显示附件的 alt 文本。
- x_attachment_title —— 显示附件标题。
- x_attachment_url —— 显示附件图片 URL。
- x_attachment_caption —— 显示附件说明文字(caption)。
Bricks 里关于 HappyFiles 的所有教程都在这里。另外也可以看这个 Bricks 论坛帖子(如何在查询子文件夹及其图片时创建画廊)。