[woof_products_ids_prediction]
The [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 or 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 / хуков
Вы можете фильтровать запросы товаров, используя стандартные хуки 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 vs [woof_products]
- Используйте
[woof_products], когда вы хотите отображать товары с фильтрацией. - Используйте
[woof_products_ids_prediction], когда вам нужно предсказать какие товары будут соответствовать — например, для предварительной загрузки данных товаров, обновления счетчика или подготовки связанных запросов перед рендерингом. - Режим предсказания по умолчанию извлекает все соответствующие товары (per_page=9999), что делает его идеальным для получения полного набора ID товаров.