From 9c098c7e35fa038428d2c1e6ca3959f17484a83f Mon Sep 17 00:00:00 2001 From: Titouan Mathis Date: Tue, 19 Aug 2025 12:28:50 +0200 Subject: [PATCH 1/3] Fix facets applying on non-main queries Fix: #49 --- src/Managers/FacetsManager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Managers/FacetsManager.php b/src/Managers/FacetsManager.php index 5dc74d7..dc778bb 100644 --- a/src/Managers/FacetsManager.php +++ b/src/Managers/FacetsManager.php @@ -58,7 +58,7 @@ public function run() */ public function add_facets_to_query(WP_Query &$query): void { - if (!is_array($this->facets)) { + if (!is_array($this->facets) || !$query->is_main_query()) { return; } From b4b8c073dd19f3ff4c93be5ab62fa3b966f9e609 Mon Sep 17 00:00:00 2001 From: Titouan Mathis Date: Tue, 19 Aug 2025 12:28:57 +0200 Subject: [PATCH 2/3] Update tests --- tests/Managers/FacetsManagerTest.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/Managers/FacetsManagerTest.php b/tests/Managers/FacetsManagerTest.php index 25e6236..72603ac 100644 --- a/tests/Managers/FacetsManagerTest.php +++ b/tests/Managers/FacetsManagerTest.php @@ -210,4 +210,21 @@ public function test_it_should_handle_array_values_in_facets() $this->assertEquals(['slug1', 'slug2'], $tax_query[0]['terms']); $this->assertEquals('slug', $tax_query[0]['field']); } + + public function test_it_should_not_add_facets_to_non_main_query() + { + request()->query->set('facets', ['cat' => 1]); + $manager = new FacetsManager(); + $manager->run(); + + // Create a non-main query + $secondary_query = new WP_Query(); + $secondary_query->init(); + + // Manually call the method to simulate what happens on pre_get_posts + $manager->add_facets_to_query($secondary_query); + + // The facets should not be applied to the secondary query + $this->assertFalse(isset($secondary_query->query_vars['cat'])); + } } From c47470f9b1ed72c93f500bb2a3aa2d44a7fab153 Mon Sep 17 00:00:00 2001 From: Titouan Mathis Date: Tue, 19 Aug 2025 13:08:59 +0200 Subject: [PATCH 3/3] Update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9402ea..a249840 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Fixed + +- Fix facets applying on non-main queries ([#49](https://github.com/studiometa/wp-toolkit/issues/49), [#50](https://github.com/studiometa/wp-toolkit/pull/50), [9c098c7](https://github.com/studiometa/wp-toolkit/commit/9c098c7)) + ## v2.3.0 - 2024.08.14 ### Added