要点总结
FacetWP提供17种筛选类型(复选框、滑块、地图等),基于索引器对10万+文章实现低于100毫秒查询,专为大规模目录、房地产、招聘网站设计。 适用场景:需按ACF/Pods自定义字段筛选、多帖子类型混筛、地图邻近搜索,或WooCommerce商店100+产品默认筛选不足。 性能优势:索引器预置查找表,5万篇以上帖子查询低于100毫秒,远超WordPress默认归档和普通插件。 定价:1站点99美元/年,无限站点279美元/年,终身版999美元;无免费版,GPL渠道可免费获取但无自动更新与官方支持。 替代方案:帖子少于5000且仅需基础筛选选Search & Filter Pro;已用Toolset可继续用其筛选;产品少于100的WooCommerce商店用默认筛选即可。
打开任何一个目录网站、房地产列表网站、拥有成千上万个 SKU 的电商网站或招聘网站,看看它们是如何筛选结果的。你会看到筛选条件:左侧边栏包含复选框、滑块、日期选择器和下拉菜单。选择“价格 200-500 美元”+“颜色:红色”+“有库存”,结果无需重新加载页面即可更新,每个选项旁边都会显示数量,例如“红色 (47)”,这样你就能在点击之前知道会有多少件商品。
这就是分面筛选,亚马逊、Airbnb 和 Yelp 都采用了相同的交互模式。WordPress 本身并没有提供类似的功能。默认的归档页面会按日期顺序显示文章,没有任何筛选条件。因此,你只能选择:编写自定义的 React + WP REST API 代码(耗时数周,且不稳定),使用 WooCommerce 的内置小部件(仅适用于 WooCommerce 产品页面,功能非常有限),或者安装一个分面筛选插件。
FacetWP是 WordPress 上最常用的分面筛选插件,专为对筛选功能有严格要求的网站而设计。它提供 17 种开箱即用的筛选类型(复选框、下拉菜单、滑块、日期范围、自动完成、邻近/地图、星级评分、层级结构),内置列表构建器用于可视化布局设计,预置索引可快速查询海量数据集,并提供面向开发者的钩子 API。虽然它的价格并非最低,但却是能够轻松应对 10 万篇以上文章的插件。
本文将详细介绍 FacetWP 的功能、索引器的工作原理、如何构建您的第一个分面列表、所有 17 种分面类型及其使用时机、列表构建器、与 WooCommerce 和 ACF 的集成、实际性能数据、与 Search & Filter Pro 和 Toolset 的比较以及开发者钩子层。
快速决策指南:您需要 FacetWP 吗?
如果您符合以下条件,请使用 FacetWP:
运营需要筛选的目录、房地产或招聘网站 我的 WooCommerce 商店有 100 多个产品,但默认筛选器不够用。 需要按 ACF/Pods 自定义字段筛选自定义文章类型 想在一个列表中筛选多种帖子类型 需要基于地图的邻近搜索(查找 X 英里范围内的房源) 关注基于索引器的性能(对 5 万篇以上帖子进行低于 100 毫秒的查询)
如果您符合以下条件,请改用 Search & Filter Pro:
需要最便宜的基本过滤方案 不需要滑块、自动完成或邻近度筛选功能 帖子数量少于 5000 篇(小规模网站无法享受索引器带来的好处)
如果您符合以下条件,请改用工具集类型/视图:
已经在使用 Toolset 来创建自定义文章类型和模板 希望筛选功能成为更广泛的自定义文章标题 (CPT) 框架的一部分 不介意学习 Toolset UI 生态系统
如果您符合以下条件,请继续使用 WooCommerce 的默认筛选器:
仅按类别、属性和价格筛选 不需要数值范围滑块或地图邻近度 产品数量少于100种
什么是分面过滤?“分面”又是什么?
维度是指数据集上的单个可筛选维度。例如,在房地产网站上,维度包括:价格、卧室数量、房产类型、城市、是否带泳池。在 WooCommerce 中,维度包括:类别、属性(颜色、尺寸)、价格范围、库存情况。在招聘网站上,维度包括:行业、薪资范围、地点、职位类型。以上每个维度都是一个维度。
列表是指经过筛选的结果集。在房地产网站上,列表是“所有房产”。在 WooCommerce 中,列表是“所有产品”。在目录网站上,列表是“所有列表” 。
多面筛选是一种用户体验模式,用户可以将多个筛选条件组合起来,实时缩小列表范围,具体包括:
AJAX 更新(无需页面重新加载) 每个选项显示的数量(“红色 (47)、蓝色 (12)、绿色 (3)”) 当没有匹配结果时,禁用选项(“绿色 (0)”或隐藏) 浏览器前进/后退操作会将状态保留在 URL 中 多个方面同时发挥作用
WordPress 的默认归档和搜索功能与此截然不同。它们按日期顺序显示所有文章,可能还会提供一个分类下拉菜单。FacetWP 可以将 WordPress 安装从“博客”转变为“可筛选的数据库”。
免费版 vs 专业版:FacetWP 许可包含哪些内容 {#pricing}
FacetWP 由 FacetWP, LLC(Matt Gibbs,前 Yoast 创始人)以年度授权方式销售。WordPress.org上没有免费版本。最便宜的套餐也是付费的。
定价(年费,所有级别均包含所有功能):
1 个站点:99 美元/年 3 个站点:每年 179 美元 无限站点:279 美元/年 终身版(无限站点):999 美元
每个等级包含的内容:
17 种刻面类型 房源生成器(可视化布局设计器) 查询构建器(在 SQL 级别进行筛选,而不仅仅是显示) 索引器(预置的查找表,用于快速查询) 30 多个开发者钩子和过滤器 WP-CLI 命令 REST API 端点 WooCommerce、ACF、Pods、JetEngine、Toolset、Polylang、WPML 集成 所有插件均免费:地图分面(邻近性)、条件逻辑、缓存、Caldera、用户文章类型集成
续费价格全价(首年无折扣)。所有附加服务自生效日起即包含在内。
在 GPL Times 商店中,GPL 会员可以免费获得相同的专业版。如果您是会员,请安装FacetWP,无需计算每个站点的许可费用。
GPL 许可版本不提供的功能包括:来自 FacetWP.com 的自动更新以及与团队直接沟通的支持工单(Matt Gibbs 亲自回复了很多工单,这确实是一大损失)。对于大多数用户来说,定期手动更新和 FacetWP 在 Slack 上的用户社区可以弥补这些不足。
步骤 1:安装 FacetWP {#step-1-install}
安装:WordPress 管理后台 -> 插件 -> 添加新插件 -> 上传插件 -> 上传facetwp.zip-> 启用。FacetWP 会在管理后台侧边栏的“设置”->“FacetWP”下添加一个新菜单。
首次激活后,您将进入“Facets”(筛选)选项卡,其中已创建了一个默认筛选条件(分类)。该插件顶部导航栏包含四个选项卡:“Facets”(筛选) 、“Listings”(列表)、“Settings”(设置)和“Support”(支持)。右上角的“Re-index”(重新索引)按钮是 FacetWP 中最常用的按钮。
如果您拥有 FacetWP.com 的许可,请将您的许可密钥粘贴到“设置”->“常规”下。GPL 许可版本则完全跳过许可验证。
步骤 2:使用房源创建工具创建房源 {#step-2-listing}
列表是您正在筛选的结果集。在创建筛选条件之前,您需要一个列表来进行筛选。
点击“列表”->“添加新列表”打开列表生成器。列表生成器有两个选项卡:“显示”(每个结果的视觉布局)和“查询”(结果集中包含哪些帖子)。

“显示”选项卡是一个拖放式布局设计器。您可以在这里为每个搜索结果项构建视觉模板。中心画布包含占位符块,例如文章标题、特色图片、自定义字段、分类和自定义 HTML。将项目拖入即可组成布局。右侧的设置面板(“基本”和“样式”选项卡)可控制网格列、结果间距、无结果消息和自定义 CSS 类。
对于房地产网站,您的模板可能是:
特色图片(160像素高) 标题 价格(自定义字段) 卧室数 | 浴室数 | 面积(平方英尺)(自定义字段,内嵌式) 节选(60个字符) 查看列表按钮
对于招聘网站,您的模板可能是:
公司标志 职称 工作地点 | 薪资范围 | 工作类型(内嵌元数据) 发布日期 立即申请按钮
“样式”选项卡用于处理视觉效果:边框、内边距、背景、悬停效果、字体。
点击右上角的“保存”。现在,该列表会生成一个短代码,就像[facetwp template="blog_posts"]您可以将其嵌入到网页中一样。
步骤 3:创建你的第一个 Facet {#step-3-facet}
点击“分面”->“添加新分面”打开分面构建器。

您需要在每个方面配置的字段:
- 标签
:显示在前端的易于理解的名称(例如“物业类型”)。 - 名称
:内部别名,由标签自动生成(例如 property_type)。 - 复制短代码
:一键复制嵌入代码 [facetwp facet="property_type"]。 - 面板类型
:输入界面(复选框、下拉菜单、滑块等)。将在步骤 6 中介绍。 - 数据源
:数值的来源。内置数据源包括所有分类、文章类型、文章字段(标题、作者、日期),以及如果安装了 ACF/Pods/JetEngine 插件,则还包括这些插件的自定义字段。 - 父级术语
(用于分类数据源):将筛选条件限制为特定术语的子项。例如,仅显示“电子产品子类别”。 - 值修饰符
:包含或排除特定值(例如,仅显示“特色”属性)。 - 层级式
:对于嵌套分类,显示带缩进的树状结构。 - 显示幽灵选项
:保持显示结果为 0(灰色显示)的筛选选项,而不是隐藏它们。 - 分面逻辑
:AND(匹配所有选定项)或 OR(匹配任意一项)。默认值取决于分面类型。 - 排序方式
:按字母顺序、按词条数量、按词条顺序或自定义。 - 数量
:要显示的最大选项数。 - 软限制
:初始显示此数量,并提供“显示更多”链接。
保存筛选条件。它现在有了一个短代码[facetwp facet="property_type"]。
步骤 4:在页面上显示筛选条件和列表 {#step-4-display}
创建一个新的 WordPress 页面(例如“房产”)。在页面编辑器中,粘贴以下短代码:
[facetwp facet="categories"][facetwp facet=”property_type”]
[facetwp facet=”price_range”] [facetwp template=”blog_posts”]
保存并查看页面。各个筛选条件将以表单控件(复选框、下拉列表、滑块)的形式呈现,列表内容将按照您在步骤 2 中创建的视觉布局显示在下方。
神奇之处在于:当用户点击某个筛选选项时,FacetWP 会通过 AJAX 实时更新列表,并统计所有其他筛选条件。URL 会生成一个哈希值,#fwp_property_type=condo这样状态就可以共享,并且可以进行前后跳转操作。
您无需使用短代码。FacetWP 支持 Gutenberg 区块(FacetWP Facet 和 FacetWP Listing 区块)、Elementor 小部件(通过 FacetWP for Elementor 插件)、Beaver Builder 模块以及直接 PHP 函数:
echo facetwp_display('template', 'blog_posts'); echo facetwp_display('facet', 'property_type');PHP 表单是您在自定义主题中要使用的。
第五步:索引器(它的作用、重要性){#step-5-indexer}
FacetWP 的秘诀在于:它会预先为每篇文章的每个 facet 值构建一个 SQL 索引。当用户选择“卧室数 = 3”时,FacetWP 不会执行复杂的 SQL JOIN 操作,而是按(facet_name, facet_value, post_id)三元组查询一个扁平的索引表。
在一个拥有 50,000 篇文章、8 个维度的 WordPress 网站上,查询时间从 3-6 秒(自定义 SQL 连接 post_meta)缩短到 30-100 毫秒(扁平索引查找)。
权衡之下:您必须保持索引更新。FacetWP 通过三种方式实现这一点:
- 文章保存时自动索引
:保存文章时,仅重新索引该文章的 facet 值。速度很快。 - 完全重新索引
(点击“重新索引”按钮):重建整个索引。大型网站速度较慢(5万篇文章需要5-30分钟)。 - 定时重新索引
:可选,对文章保存之外发生变化的内容(例如 WooCommerce 库存水平)进行计划重新索引。
管理界面右上角的“索引表为空”警告是 FacetWP 提示您索引的行数为零。点击“重新索引”即可填充索引。
如果您的筛选器显示错误的计数或缺少选项,第一步始终是:点击“重新索引”。80% 的 FacetWP 支持工单都是通过重新索引解决的。
步骤 6:17 种面类型详解 {#step-6-types}
每种筛选类型都会呈现不同的用户界面,并提供不同的筛选模式。

对于分类和离散值:
- 复选框
– 经典的亚马逊式多选复选框。最适合 5-30 个选项。分类法的默认设置。 - 单选按钮
——一次只能选择一个值的情况最合适(例如“房源类型:出售 | 出租”)。 - 下拉菜单
——原生 HTML 选择框。选项较多时可节省垂直空间。 - fSelect
– 可搜索的多选下拉菜单(类似 Select2)。最适合 30-200 个选项。 - 层级结构
——嵌套分类树,点击即可深入查看。最适合深度分类树(例如电子产品 > 电脑 > 笔记本电脑)。 - 自动补全
——在搜索框中输入内容即可自动匹配值。最适合包含 200 个以上选项且用户清楚自己想要什么的情况。
对于数值/连续值:
- 滑块式
——单把手范围滑块。最适合“最高价格”类型的过滤器。 - 数量范围
——双把手滑动式,带最小值和最大值。最适合价格范围。 - 日期范围
——日历选择器,用于选择起始日期和结束日期。最适合用于活动日期和帖子发布日期。
特殊数据:
- 搜索
– 与文章内容匹配的关键词搜索输入 + 自定义字段。 - 评分
– 星级评分筛选器(例如 4 星及以上)。 - 邻近性
——“查找距离邮政编码/地址 X 英里范围内的房源”。需要 Google Maps API。 - 地图
– 交互式结果地图(拖动地图进行筛选)。需要 Google Maps API。
用于分页和排序:
- 寻呼机
– 页码控制。 - 排序
– 下拉菜单,供用户选择排序方式(价格升序/降序、日期、受欢迎程度)。
对于用户界面:
- 重置
– “清除所有筛选条件”按钮。 - 切换开关
——布尔开/关开关。
房地产网站的推荐起始维度:层级(城市 > 社区)、数字范围(价格)、复选框(卧室)、复选框(房产类型)、切换(有游泳池)、排序(价格/日期)、重置。
推荐用于 WooCommerce:复选框(类别)、数字范围(价格)、复选框(颜色属性)、复选框(尺寸属性)、切换(库存)、评分(4 星以上)、排序、重置。
步骤 7:列表构建器查询选项卡(按查询级别进行筛选){#step-7-query}
“显示”选项卡用于布局;“查询”选项卡用于实际获取的内容。

查询选项卡用户界面允许您WP_Query以可视化的方式构建:
- 获取
:要包含哪些文章类型(可多选)。默认值:文章。对于房地产文章,请设置为您的自定义文章 property类型 (CPT)。 - 每页显示 N 条
帖子:每页显示的帖子数。 - 排序方式
:默认排序(发布日期、标题、随机、自定义字段、菜单顺序)。 - 添加查询排序
:二级排序。 - 添加查询筛选器
:在应用筛选条件之前,在 SQL 层级添加筛选器。例如:“仅显示已发布且已启用“特色”属性的房源。” - 转换为查询参数
:切换到原始 PHP WP_Query参数以获得完全控制。
何时应该在查询级别进行筛选,何时应该添加分面?查询级别的筛选器是预先筛选的(始终应用,用户无法控制)。分面是用户应用的(可选,用户选择)。因此:“始终仅显示特色房源”= 查询筛选器。“允许用户按房源类型筛选”= 分面。
步骤 8:调整设置和索引器行为 {#step-8-settings}
点击顶部导航栏中的“设置”选项卡,进行插件全局配置。

沿着关键行走:
- 许可证密钥
:仅适用于 FacetWP.com 直接购买的许可证。请在此处激活。 - Google Maps API 密钥
:用于“邻近”和“地图”功能。请从 Google Cloud 控制台获取;启用生成式引擎优化(GEO)编码和 Maps JavaScript API。 - 使用旧版邻近度分面
:如果您是从使用旧 API 的旧版 FacetWP 安装升级,并且已有邻近度分面,请启用此选项。 - 分隔符
:千位分隔符(逗号)和小数分隔符(句点)。影响价格显示。欧洲地区请分别改为“.”和“,”。 - 加载 jQuery
:FacetWP 无需 jQuery 即可运行。仅当自定义主题或分面钩子依赖于 jQuery 时才启用此功能。 - 启用无障碍支持
:用于键盘导航和屏幕阅读器兼容性的 ARIA 属性。公共网站始终启用。 - 高级查询检测
:尝试检测主题/插件使用的 WP_Query 对象,以便您可以自动将 FacetWP 连接到它们。默认开启。 - 调试模式
:在浏览器控制台中输出查询信息。有助于排查故障。生产环境中禁用。 - 启用自动索引
:文章保存时自动重新索引。几乎始终启用。仅当您的发帖频率较高,需要延迟索引时才应禁用。
点击“导入/导出”(单独的子选项卡)将您的 facet 和列表配置备份为 JSON 格式。这对于从测试环境部署到生产环境至关重要。
WooCommerce 集成 {#woocommerce}
FacetWP 可直接用于 WooCommerce 商店、分类和标签存档。它会自动检测 WooCommerceproduct_query并与之集成。
WooCommerce 常用筛选设置:
创建以下方面的分类:类别(层级)、标签(复选框)、价格(数字范围)、每个属性(复选框)、库存(切换)、促销(切换)、评分(星级)。 创建商品列表(或使用 WC 的默认产品循环,FacetWP 与两者都集成)。 在商店页面上,在侧边栏小部件或产品上方添加筛选条件。 完毕。
特殊情况:
- 具有属性的可变产品
:FacetWP 可以通过筛选器按变体级别(而不仅仅是父产品)进行筛选 facetwp_enable_product_variations。 - 自定义产品分类
:FacetWP 可自动检测所有 WC 产品分类,包括自定义分类。 - 缺货与可见
:WordPress 有一个“从目录中隐藏缺货商品”的设置。FacetWP 会遵循此设置。 - 产品价格范围有多种变体
:FacetWP 会索引可变产品的最低价格,因此价格滑块筛选正确。
WooCommerce 集成是 FacetWP 的第一大用例,Matt Gibbs 花费了大量时间来使其能够应对各种极端情况。
ACF、Pods 和 JetEngine 集成 {#acf}
FacetWP 可自动检测ACF Pro、Pods 和JetEngine字段组。构建 facet 时,自定义字段会显示为数据源选项,无需编写任何代码。
ACF集成:
文本字段:变为搜索筛选条件。 数字字段:变为滑块或数字范围选项。 日期字段:变为日期范围字段。 选择框/复选框字段:变为复选框或下拉列表选项。 分类字段:变为复选框或层级结构选项。 重复字段:每一行都单独建立索引(因此您可以按任何一行的值进行筛选)。 分组字段:每个子字段都成为其自身的分面数据源。
JetEngine 集成:逻辑相同,所有 JetEngine 元字段和自定义文章类型都会自动检测。
Pods 集成:所有 Pods 字段均可作为数据源。
如果你使用 ACF Pro 构建房地产网站并定义房产字段,FacetWP 可以让你基于这些字段进行分面搜索,而无需任何 PHP 代码。
实际性能数据 {#performance}
基于代表性数据集的真实数据。
网站 1:WooCommerce 商店,2400 个产品,15 个分类,Kinsta 主机:
默认 WC 过滤器:过滤后的商店页面 TTFB 为 800 毫秒 FacetWP(无索引):在筛选后的商店页面上耗时 1.2 秒 FacetWP(已索引):筛选后的商店页面加载时间为 180 毫秒
网站 2:房地产网站,18,000 条房源信息,12 个筛选条件,定制 VPS:
不使用 FacetWP(原始数据, WP_Query包含元连接):过滤页面耗时 6.4 秒使用 FacetWP(已索引):290 毫秒
网站 3:招聘网站,65,000 个活跃职位,9 个方面,Cloudways:
FacetWP(已索引):初始页面加载时间 380 毫秒,AJAX 更新时间 90 毫秒
索引器重建时间:
2400 条帖子:8 秒 18,000 条帖子:1 分钟 65,000 条帖子:6 分钟 20万条帖子:25分钟(通过定时任务分批处理)
索引器运行时间大致呈线性增长。对于帖子数量超过 5 万篇的网站,索引器会通过 WP-Cron 分批运行,以避免内存耗尽。
内存影响:启用分面后,每次页面渲染将额外占用约 12MB PHP 内存。
将 FacetWP 与对象缓存(Redis 或 Memcached)结合使用,可额外提升 30-50% 的查询性能。
客观比较。
| 17 | |||
| 是的 | |||
| 是的 | |||
| 出色的 | |||
使用 FacetWP进行大规模的严肃筛选,尤其适用于电子商务、目录和房地产。
使用 Search & Filter Pro可以在帖子数少于 5000 篇的小型网站上实现价格低廉的基本筛选功能。
如果您已经在使用 Toolset 生态系统,并且需要在更广泛的 CPT/模板工作中进行筛选,请使用 Toolset Views 。
对于互补工具,SearchWP与 FacetWP 搭配使用效果很好,SearchWP 用于全文搜索相关性,FacetWP 用于对结果进行分面过滤。
10 个常见的陷阱 {#gotchas}
创建或编辑筛选条件后,必须重新建立索引。新创建的筛选条件会在文章保存时自动建立索引,但现有文章需要手动重新建立索引才能填充筛选条件的值。
邻近度和地图功能需要已启用结算功能的 Google Cloud 帐户。免费套餐涵盖大部分使用量,但您需要在 Google Cloud 控制台中启用结算功能(使用信用卡)才能激活生成式引擎优化(GEO)编码 API。
自定义文章类型默认情况下不会被索引。添加新的自定义文章类型后,您需要通过
facetwp_indexer_post_facet筛选器或重新配置列表的查询选项卡,告知 FacetWP 将其包含在索引中。缓存插件可能会干扰 AJAX 请求。如果您使用 WP Rocket 或 LiteSpeed Cache,请将筛选页面从缓存中排除(通过“永不缓存 URL”),否则您将提供过时的筛选器计数。
搜索功能仅搜索已索引的字段。如果您的搜索需要匹配文章内容、自定义字段和评论,则需要使用SearchWP作为搜索引擎,并在此基础上使用 FacetWP 进行筛选。
日期范围筛选条件要求索引字段的数据类型为“date”。ACF日期字段会自动检测;自定义编码的、以字符串形式存储的日期字段需要经过转换器才能正常工作。
在 cron 任务配置存在问题的网站上,索引器的 wp_cron 模式会静默失败。如果缓存命中率不
wp-cron.php高(例如低流量网站),索引将永远不会重建。请*/5 * * * * wget -q http://yoursite.com/wp-cron.php在测试环境中使用真正的 cron 任务。AJAX 筛选功能会干扰浏览器书签。URL哈希值会改变,但路径不变。如果用户将筛选后的 URL 添加到书签,他们会看到筛选后的内容,但搜索引擎不会对其进行索引。如果 SEO 很重要,建议搭配 FacetWP 的“美化 URL”插件使用。
邻近度筛选功能的地址自动补全功能使用 Google Places。免费套餐每日查询次数上限为 1000 次。如果使用量过大超出免费套餐限额,则会从您的信用卡中扣款。
WooCommerce 可变产品的价格筛选器显示的是父产品的价格。要按变体价格筛选,请启用此功能
facetwp_enable_product_variations(通过编程方式启用,无需用户界面切换)。
开发者参考:钩子、过滤器、REST API {#developer-reference}
FacetWP 提供 90 多种滤镜。以下是其中效果最显著的几种。
自定义索引器行为(为分面添加自定义数据源):
add_filter('facetwp_indexer_post_facet', function($return, $params) { $facet = $params['facet']; if (
post_id =
year = get_post_meta(
year) { FWP()->indexer->insert([ 'post_id' =>
year, 'facet_display_value' =>
return; }, 10, 2);渲染前修改分面的选项:
add_filter('facetwp_facet_render_args', function(
args['facet']['name'] === 'property_type') {
args['values'], 0, 5); // top 5 only } return
query_args,
query_args['posts_per_page'] = 20;
query_args; }, 10, 2);接入 AJAX 响应(修改返回给浏览器的计数或值):
add_filter('facetwp_ajax_response', function(
output['extra_message'] = 'Showing top results only'; return
defaults,
exclude_categories = [10, 11];
post_id); if (array_intersect($cats, $exclude_categories)) { return false; // skip indexing } return
args) { if (args['facet']['name'] === 'price') { $args['min'] = 100000; $args['max'] = 5000000;
args; });以编程方式触发重新索引(批量导入后很有用):
FWP()->indexer->index();WP-CLI 命令:
# Trigger a re-index from CLI wp facetwp index # Re-index a specific post wp facetwp index --post_id=123 # Re-index only a specific facet wp facetwp index --facet=property_type # Show indexer status wp facetwp statusREST API 端点(已认证):
POST /wp-json/facetwp/v1/fetch -> AJAX-style query for current page's listings + facet states GET /wp-json/facetwp/v1/refresh -> rebuild facet counts这些功能支持自定义前端(React、Vue),它们通过无头 API 与 FacetWP 进行通信。
常见问题解答 {#faq}
FacetWP 是否支持 Gutenberg 编辑器/区块主题? 是的。您可以使用 FacetWP Facet 和 FacetWP Listing Gutenberg 区块。或者,您也可以在区块中的任何位置使用短代码。
FacetWP 是否支持 Elementor? 是的,通过 FacetWP for Elementor 集成(所有许可证均包含此功能)。您可以将 FacetWP 小部件直接拖放到 Elementor 模板中。
我可以不使用 WooCommerce 而使用 FacetWP 吗? 当然可以。它最常见的应用场景包括房地产、招聘网站、目录、博客等,这些都与 WooCommerce 无关。
FacetWP 是否支持多语言网站? 是的,它原生支持 WPML 和 Polylang。每种语言都有自己独立的索引副本,因此法语用户可以看到法语的 facet 值,英语用户可以看到英语的 facet 值。
FacetWP 会占用多少内存? 每次页面渲染大约额外占用 12MB。索引器重建会占用 80-200MB,具体取决于数据集的大小;memory_limit请相应地配置 PHP。
如果我的主机在重建过程中终止了索引器怎么办?
FacetWP 每 5 秒保存一次索引器进度。如果索引器被终止,下次点击“重新索引”按钮会从上次中断的地方继续。
我可以自定义 AJAX 加载指示器吗? 可以,通过 CSS(.facetwp-loading类)或facetwp_loading_template过滤器。
FacetWP 有免费试用吗? 直接授权的话,没有。
FacetWP 会拖慢我的后台管理速度吗? 几乎不会。设置界面每次保存都只渲染一个 PHP 页面。索引器通过 cron 或 AJAX 分块运行,不会阻塞后台操作。
我可以在不同站点之间迁移筛选条件吗? 可以。“设置”->“导入/导出”会生成所有筛选条件和列表的 JSON 转储文件。在新站点上导入,重新索引,就完成了。
“筛选条件”和“列表”有什么区别?
“列表”是结果集(即经过筛选的帖子)。“筛选条件”是一种筛选控件(例如复选框、滑块等)。一个“列表”可以被多个“筛选条件”筛选。
地图功能需要 Mapbox 还是 Google 帐户? 默认使用 Google 帐户(需要启用生成式引擎优化(GEO)编码和地图 JavaScript 的 API 密钥)。Mapbox 可通过第三方插件使用。
FacetWP 可以按作者筛选文章吗? 可以。使用复选框或下拉列表筛选器,并结合内置的“作者”数据源。
最后的一些想法 {#final-thoughts}
FacetWP 是一款 WordPress 过滤插件,它之所以定价较高,是因为它是唯一一款能够真正实现良好扩展性的插件。对于文章数量少于 5000 篇的小型网站,Search & Filter Pro 甚至 WordPress 自带的过滤器就足够用了。但一旦您的网站文章数量超过 10000 篇,需要更高性能的过滤功能,FacetWP 的索引器就能让您的网站从令人抓狂的糟糕体验中脱颖而出。
选择 FacetWP 的第二个原因是其列表构建器:无需编写 PHP 模板即可为筛选结果构建自定义布局,这确实能显著提高工作效率。“查询”选项卡让您WP_Query无需编写代码即可进行可视化构建。
FacetWP 不适用于以下情况:只需要一个类别下拉菜单的小型网站、已经使用 Toolset 作为框架的网站,或者预算受限、Search & Filter Pro就足够好的项目。
将 FacetWP 与SearchWP结合使用,实现搜索筛选器全文相关性评分;使用ACF Pro实现筛选器自定义字段的过滤;使用Perfmatters保持前端 JS 代码精简;并配置WP Rocket以跳过筛选页面缓存。这套技术栈支撑着我见过的绝大多数高流量 WordPress 筛选网站。
点击左下角“阅读原文”获得文中的WordPress主题/插件。长按图片添加微信客服咨询如何搭建企业网站、商城、在线教育、跨境电商、私域小程序和会员系统网站等。

夜雨聆风