woof_products_ids_prediction
woof_products_ids_prediction
Шорткод [woof_products_ids_prediction] представляет собой специализированную обертку вокруг [woof_products], предназначенную для прогнозирования того, какие ID продуктов будут соответствовать текущему состоянию фильтра. Он полезен для настроек, управляемых AJAX, где вам необходимо знать отфильтрованный набор продуктов до их отображения.
Принцип работы
Внутри этот шорткод вызывает тот же метод woof_products() с флагом is_prediction, установленным в true. Единственное поведенческое отличие состоит в том, что в режиме прогнозирования per_page по умолчанию равен 9999 — это означает, что он возвращает все соответствующие продукты по умолчанию, что полезно для получения полного набора ID продуктов.
Атрибуты
Поддерживает все атрибуты из [woof_products]:
| Атрибут | По умолчанию | Описание |
|---|---|---|
columns | По умолчанию WooCommerce | Количество колонок продуктов |
orderby | no | Поле для сортировки (no = использовать настройки WooCommerce, price, price-desc, date, title и т.д.) |
order | no | Порядок сортировки (ASC, DESC или no для значения по умолчанию) |
page | 1 | Номер страницы для пагинации |
per_page | 9999* | Продуктов на страницу. В режиме прогнозирования по умолчанию 9999 (все продукты). Используйте конкретное число, если вам нужны результаты с пагинацией. |
is_ajax | 0 | Включить режим AJAX (1 или 0) |
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_continue | false | Прогнозировать ID и продолжить с полным запросом продуктов |
get_args_only | false | Когда true, возвращает только аргументы WP_Query без выполнения запроса |
product_ids | '' | Список конкретных ID продуктов, разделенных запятыми, для отображения |
post__in | '' | Список ID записей, разделенных запятыми, для включения |
display_on_search | 0 | Установите в 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, отсортированных по цене по возрастанию.
Использование с 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 / Hooks
Вы можете фильтровать запрос продуктов, используя стандартные хуки 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 продуктов.