HUSKY - Products Filter Professional for WooCommerce

WOOF Filteringでページネーションが多すぎるページを表示するのを修正する方法

WOOF (HUSKY) 製品フィルターを使用しているときに WooCommerce のページネーションでページ番号が正しく表示されない場合は、このガイドで修正できます。

問題

症状: WOOF/HUSKY で製品をフィルター処理すると、実際には存在しないページよりも多くのページがページネーションに表示されます。

例:

  • フィルターは 15 商品を表示します(2 ページであるべきです)
  • ページネーション表示:1、2、3、4、5… (5ページ以上)
  • ページ3+をクリックすると、空の結果または「商品が見つかりません」が表示されます

何が起こっているか: WooCommerce のページネーションは、フィルターされた結果ではなく、製品カタログ全体に基づいてページ数を計算します。WOOF は製品をフィルターしますが、ページネーションはそれに応じて更新されません。

ソリューション

このコードを追加して、WOOFのフィルタリングされたクエリから正しいページ数を取得するようにページネーションを強制します。

ステップ 1: コードを追加

子テーマの~に追加 functions.php:

/**
 * Fix pagination page count when using WOOF filtering
 * Forces pagination to use correct max_num_pages from filtered query
 */
add_filter('woocommerce_pagination_args', function($args) {
    global $wp_query, $WOOF;
    
    // Check if WOOF filtering is active
    if ($WOOF->is_isset_in_request_data($WOOF->get_swoof_search_slug())) {
        // Force correct page count from HUSKY filtered query
        $args['total'] = $wp_query->max_num_pages;
    }
    
    return $args;
}, 999);

優先度 999: 他のページネーションの変更後に実行されることを保証します。

ステップ 2: キャッシュをクリア

  1. WordPressキャッシュをクリアする(キャッシュプラグインを使用している場合)
  2. ブラウザキャッシュをクリアする (Ctrl+F5)
  3. Test filtered results

ステップ 3: 確認

  1. 任意のWOOFフィルター(カテゴリ、価格、属性)を適用する
  2. ページ下部のページネーションを確認してください
  3. ページ番号は実際のフィルター結果と一致するはずです

修正前:

Showing 12 products Pages: 1 2 3 4 5 6 7 8 (wrong!)

修正後:

Showing 12 products Pages: 1 2 (correct!)

仕組み

if ($WOOF->is_isset_in_request_data($WOOF->get_swoof_search_slug())) {

これはどのように機能しますか: URL に WOOF の検索パラメータを探すことで、WOOF フィルターが現在アクティブかどうかをチェックします。

$args['total'] = $wp_query->max_num_pages;

これはどのように機能しますか: フィルターされた WordPress クエリからの実際のページ数で WooCommerce のページネーション合計をオーバーライドします。

なぜ優先度 999 なのか? 一部のテーマまたはプラグインはページネーションを変更します。優先度999は、このコードが最後に実行され、優先されることを保証します。

 

トラブルシューティング

ページネーションがまだ間違っています

問題: コードを追加した後もページ数が正しくない

考えられる原因:

  1. 子テーマにないコード
    • 子テーマの functions.php を編集していることを確認してください
    • 親テーマのアップデートは、子テーマにない場合、コードを消去します
  2. キャッシュがクリアされていません
    • WordPress キャッシュプラグインをクリアする
    • サーバーキャッシュをクリア(ホスティングパネル)
    • シークレットモードでテスト
  3. テーマによるページネーションの上書き
    • 一部のテーマではカスタムページネーション関数が使用されています
    • 優先度を9999に増やしてみてください
    • Check theme documentation

ソリューション: テーマの競合が発生した場合に優先度を上げる:

add_filter('woocommerce_pagination_args', function($args) {
    // ... code ...
}, 9999); // Higher priority

 

この修正が必要な場合

以下の場合にこの修正が必要です:

  • ✅ WOOF/HUSKY を使用した製品フィルタリング
  • ✅ ページネーションに存在するページ数よりも多くのページが表示される
  • ✅ 高いページ番号をクリックしても製品が表示されない
  • ✅ フィルター結果のカウントがページネーションと一致しません