Bricks 用 IsotopeJS 做筛选(二):自定义分类法管理图片分类
系列第一篇入队了 IsotopeJS 并完成基础初始化。本篇让筛选真正动态化——用 WordPress 自定义分类法给图片打分类,而不是用 ACF 自定义字段。
本文基于 BricksLabs 公开免费教程实译,代码完整可复用。原文:How to create filters with IsotopeJS in Bricks (Part 2)
思路:用分类法而非自定义字段
给图片分类可以用 ACF / MetaBox / Pods 自定义字段,但更“WordPress 原生”的做法是自定义分类法(taxonomy)。这样筛选按钮能直接从分类列表生成,图片管理也更自然。
代码一:注册 Filter Categories 分类法
在子主题 functions.php 手动注册(不用 CPT UI 插件):
// 注册名为 Filter Categories 的新分类法
function bl_add_filter_categories_taxonomy() {
$labels = array(
'name' => 'Filter Categories',
'singular_name' => 'Filter Category',
'search_items' => 'Search Filter Categories',
'all_items' => 'All Filter Categories',
'parent_item_colon' => 'Parent Filter Category',
// ... 完整标签 ...
);
代码二:取当前文章分类
筛选需要把当前文章的分类名输出到 DOM,供 IsotopeJS 读取:
// 获取当前图片关联的所有分类
function bl_get_terms_from_filter_categories(){
$term_obj_list = get_the_terms( get_the_ID(), 'filter_categories' );
$terms_string = join(', ', wp_list_pluck($term_obj_list, 'name'));
return $terms_string;
}
wp_list_pluck 取出所有分类名并用 join 拼成逗号分隔字符串,方便输出为 data-category 属性。
小结
- 分类法方案比自定义字段更原生、更易维护
- 筛选按钮可动态从分类列表生成
- 下一篇继续讲筛选交互逻辑
延伸阅读
延伸阅读
Bricks 用 IsotopeJS 做筛选(一):入队库与基础初始化
教程:IsotopeJS 筛选系列第一篇——在 Bricks 里用 WordPress 原生入队 IsotopeJS(Bricks 内置库),配好 CSS 变量响应式列数与初始化脚本。
tutorialBricks Tabs 自动轮播:滚动到可视区自动切换标签页
教程:给 Bricks 的 Tabs(Nestable)元素加自动轮播——滚动到可视区域后每 x 秒自动切换标签页,适合首页产品/方案展示。
tutorialBricks 判断 ACF Repeater 是否有数据行:条件输出进阶
教程:在 Bricks 里用自定义函数判断 ACF Repeater 字段是否有数据行,从而条件显示元素。解决基础类型条件判断搞不定的数组型字段。
tutorialBricks 给区块加草稿状态开关:编辑器里隐藏未定稿区块
教程:用代码片段给 Bricks 所有元素加一个“草稿状态”勾选框,勾选后前端不输出。适合临时隐藏未定稿区块(Bricks 2.0 已原生内置,本文作历史方案参考)。
