HUSKY - Product Filter for WooCommerce

[woof_products_ids_prediction]

[woof_products_ids_prediction] 短代码是围绕 [woof_products] 的一个专用封装,旨在预测哪些产品 ID 将匹配当前筛选状态。它适用于需要先了解筛选后产品集再进行渲染的 AJAX 驱动场景。

工作原理

在内部,此短代码调用相同的 woof_products() 方法,并将 is_prediction 标志设置为 true。唯一的行为差异是:在预测模式下,per_page 默认为 9999——即默认返回所有匹配的产品,这对于获取完整的产品 ID 集非常有用。

属性

支持 [woof_products] 的所有属性:

属性默认值说明
columnsWooCommerce 默认产品列数
orderbyno排序字段(no = 使用 WooCommerce 设置,priceprice-descdatetitle 等)
orderno排序顺序(ASCDESCno 表示默认)
page1分页页码
per_page9999*每页产品数。在预测模式下默认为 9999(所有产品)。如果需要分页结果,请指定具体数值。
is_ajax0启用 AJAX 模式(10
taxonomies''按分类法筛选。格式:product_cat:9,12+locations:30,31(加号分隔不同的分类法)
sid''用于标识特定筛选实例的搜索 ID
behavior''特殊行为(例如 recent 表示最新产品)
custom_tpl''自定义模板文件的路径(例如 wp-content/themes/my_theme/woo_tpl_1.php
tpl_index''任何模板扩展的索引
predict_ids_and_continuefalse预测 ID 并继续执行完整的产品查询
get_args_onlyfalse当设为 true 时,仅返回 WP_Query 参数而不执行查询
product_ids''要显示的具体产品 ID 列表(逗号分隔)
post__in''要包含的文章 ID 列表(逗号分隔)
display_on_search0设为 1 以仅在搜索/筛选激活时显示产品

* 在预测模式(woof_products_ids_prediction)下,per_page 默认为 9999。在常规的 [woof_products] 短代码中,它默认为 0(使用插件设置)。

基本用法


[woof_products_ids_prediction]

返回匹配当前筛选状态的所有产品 ID。

与分类法一起使用


[woof_products_ids_prediction taxonomies="product_cat:15,17" orderby="price" order="ASC"]

返回分类 ID 为 15 和 17 的产品 ID,按价格升序排列。

与 AJAX 一起使用


[woof_products_ids_prediction is_ajax="1" per_page="12" display_on_search="1"]

在 AJAX 模式下显示产品,每页 12 个,仅在筛选激活时显示。在预测模式下,这有助于预加载预期的结果集。

仅获取查询参数


[woof_products_ids_prediction get_args_only="true"]

仅返回 WP_Query 参数(以数组形式)而非执行查询——适用于需要在运行查询前检查或修改查询的高级自定义集成。

PHP / 钩子集成

您可以使用标准的 WooCommerce 和 HUSKY 钩子来过滤产品查询。例如,修改查询参数:


add_filter('woof_draw_products_get_args', function($args) {
    // Modify query arguments before execution
    $args['post_type'] = array('product', 'product_variation');
    return $args;
});

何时使用 woof_products_ids_prediction[woof_products]

  • 当您需要显示带筛选的产品时,使用 [woof_products]
  • 当您需要预测哪些产品会匹配时——例如,预加载产品数据、更新计数器或在渲染前准备相关查询——使用 [woof_products_ids_prediction]
  • 预测模式默认获取所有匹配产品(per_page=9999),非常适合获取完整的产品 ID 集。