[woof_products_ids_prediction]
[woof_products_ids_prediction] ショートコードは、現在のフィルター状態に一致する商品IDを予測するために設計された、[woof_products] の特殊なラッパーです。これは、レンダリング前にフィルターされた商品セットを知る必要がある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* | 1ページあたりの商品数。予測モードではデフォルトが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"]
カテゴリー15と17の商品のIDを、価格の昇順で並び替えて返します。
AJAXでの使用法
[woof_products_ids_prediction is_ajax="1" per_page="12" display_on_search="1"]
AJAXモードで、1ページあたり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の完全なセットを取得するのに最適です。