From 7a8279f8e7b6b9b5aa52e1834b4390b9212bf028 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 6 Nov 2026 00:00:17 +0800 Subject: [PATCH] fix(layout): pass term object to archive settings Co-Authored-By: Claude Opus 5 (1M context) --- inc/helpers/template-tags/site-layout.php | 6 +++--- tests/widget-system/post-visual-contract.test.cjs | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/inc/helpers/template-tags/site-layout.php b/inc/helpers/template-tags/site-layout.php index 44fa62eb..3c6ddd13 100644 --- a/inc/helpers/template-tags/site-layout.php +++ b/inc/helpers/template-tags/site-layout.php @@ -195,9 +195,9 @@ function jio_is_show_sidebar_filter(): bool { // Category/tag term meta can still force off (existing Jio contract). if ((is_category() || is_tag()) && class_exists('\Jio\Core\TermMeta') && method_exists('\Jio\Core\TermMeta', 'resolve_archive_settings')) { - $term_id = (int) get_queried_object_id(); - if ($term_id > 0) { - $resolved = \Jio\Core\TermMeta::resolve_archive_settings($term_id); + $term = get_queried_object(); + if ($term instanceof \WP_Term) { + $resolved = \Jio\Core\TermMeta::resolve_archive_settings($term); if (is_array($resolved) && array_key_exists('show_sidebar', $resolved) && empty($resolved['show_sidebar'])) { return false; } diff --git a/tests/widget-system/post-visual-contract.test.cjs b/tests/widget-system/post-visual-contract.test.cjs index b9b3ee1c..ae7c3349 100644 --- a/tests/widget-system/post-visual-contract.test.cjs +++ b/tests/widget-system/post-visual-contract.test.cjs @@ -413,6 +413,8 @@ test('every scene reserves a sidebar column only when its widget stack has conte // (home/category/tag/search/page/archive) to no-sidebar, not just singles. assert.match(layout, /if \(!jio_has_current_sidebar_widgets\(\)\) \{\s*return false;/); assert.doesNotMatch(layout, /is_single\(\) && !jio_has_current_sidebar_widgets/); + assert.match(layout, /\$term = get_queried_object\(\);[\s\S]*?\$term instanceof \\WP_Term[\s\S]*?resolve_archive_settings\(\$term\)/); + assert.doesNotMatch(layout, /resolve_archive_settings\(\$term_id\)/); // The resolver must answer home_sidebar before the is_page() branch so a // static front page is checked against the zones the homepage renders.