From 7be7e105cdd7042ec92c20d43079d95e77e36deb Mon Sep 17 00:00:00 2001 From: Faisal Ahammad Date: Wed, 6 May 2026 13:58:17 +0600 Subject: [PATCH 1/5] Add menu toggle position option for simplified subpage header --- newspack-theme/header.php | 12 ++++++++++- newspack-theme/inc/customizer.php | 21 +++++++++++++++++++ newspack-theme/inc/template-functions.php | 5 +++++ newspack-theme/js/src/customize-controls.js | 13 +++++++++++- .../navigation/_menu-mobile-navigation.scss | 8 ++++++- .../template-parts/header/subpage-sidebar.php | 6 ++++-- 6 files changed, 60 insertions(+), 5 deletions(-) diff --git a/newspack-theme/header.php b/newspack-theme/header.php index 1f1268b71..585e19872 100755 --- a/newspack-theme/header.php +++ b/newspack-theme/header.php @@ -29,6 +29,7 @@ $show_slideout_sidebar = get_theme_mod( 'header_show_slideout', false ); $slideout_sidebar_side = get_theme_mod( 'slideout_sidebar_side', 'left' ); $header_sub_simplified = get_theme_mod( 'header_sub_simplified', false ); +$subpage_toggle_side = get_theme_mod( 'subpage_toggle_side', 'left' ); $header_sticky = get_theme_mod( 'header_sticky', false ); // Even if 'Show Slideout Sidebar' is checked, don't show it if no widgets are assigned. @@ -60,7 +61,7 @@
- +
+
+
diff --git a/newspack-theme/inc/customizer.php b/newspack-theme/inc/customizer.php index bb2453476..6aacfd4fe 100755 --- a/newspack-theme/inc/customizer.php +++ b/newspack-theme/inc/customizer.php @@ -245,6 +245,27 @@ function newspack_customize_register( $wp_customize ) { ) ); + // Subpage header - menu toggle position. + $wp_customize->add_setting( + 'subpage_toggle_side', + array( + 'default' => 'left', + 'sanitize_callback' => 'newspack_sanitize_slideout_sidebar_side', + ) + ); + $wp_customize->add_control( + 'subpage_toggle_side', + array( + 'type' => 'radio', + 'label' => esc_html__( 'Menu toggle position', 'newspack-theme' ), + 'choices' => array( + 'left' => _x( 'Left', 'menu toggle position', 'newspack-theme' ), + 'right' => _x( 'Right', 'menu toggle position', 'newspack-theme' ), + ), + 'section' => 'header_section_subpages', + ) + ); + /** * Header - Mobile Donate CTA */ diff --git a/newspack-theme/inc/template-functions.php b/newspack-theme/inc/template-functions.php index c6926ad30..321753d73 100755 --- a/newspack-theme/inc/template-functions.php +++ b/newspack-theme/inc/template-functions.php @@ -115,6 +115,11 @@ function newspack_body_classes( $classes ) { $header_sub_simplified = get_theme_mod( 'header_sub_simplified', false ); if ( true === $header_sub_simplified && ! is_front_page() ) { $classes[] = 'h-sub'; + + $subpage_toggle_side = get_theme_mod( 'subpage_toggle_side', 'left' ); + if ( 'right' === $subpage_toggle_side ) { + $classes[] = 'h-sub-right'; + } } else { $classes[] = 'h-nsub'; } diff --git a/newspack-theme/js/src/customize-controls.js b/newspack-theme/js/src/customize-controls.js index df9eb0608..fba06b083 100755 --- a/newspack-theme/js/src/customize-controls.js +++ b/newspack-theme/js/src/customize-controls.js @@ -337,7 +337,7 @@ } ); } ); - // Only show Alternative Logo option if 'simple subpage header' is picked + // Only show Alternative Logo and toggle side options if 'simple subpage header' is picked wp.customize( 'header_sub_simplified', function ( setting ) { wp.customize.control( 'newspack_alternative_logo', function ( control ) { const visibility = function () { @@ -350,6 +350,17 @@ visibility(); setting.bind( visibility ); } ); + wp.customize.control( 'subpage_toggle_side', function ( control ) { + const visibility = function () { + if ( true === setting.get() ) { + control.container.slideDown( 180 ); + } else { + control.container.slideUp( 180 ); + } + }; + visibility(); + setting.bind( visibility ); + } ); } ); // Only show Author Bio truncate options when enabled. diff --git a/newspack-theme/sass/navigation/_menu-mobile-navigation.scss b/newspack-theme/sass/navigation/_menu-mobile-navigation.scss index 5462427d3..f169eda58 100644 --- a/newspack-theme/sass/navigation/_menu-mobile-navigation.scss +++ b/newspack-theme/sass/navigation/_menu-mobile-navigation.scss @@ -100,6 +100,10 @@ margin: 0 #{1.25 * structure.$size__spacing-unit} 0 0; } +.subpage-toggle-contain.dir-right { + margin: 0 0 0 #{0.75 * structure.$size__spacing-unit}; +} + .site-header .desktop-menu-toggle.dir-right { margin: 0 0 0 #{1.25 * structure.$size__spacing-unit}; } @@ -418,13 +422,15 @@ // Fallback - open from the right #mobile-sidebar-fallback, -#desktop-sidebar-fallback.dir-right { +#desktop-sidebar-fallback.dir-right, +#subpage-sidebar-fallback.dir-right { left: auto; right: -100%; transition: right 0.2s; } .desktop-menu-opened #desktop-sidebar-fallback.dir-right, +.subpage-menu-opened #subpage-sidebar-fallback.dir-right, .mobile-menu-opened #mobile-sidebar-fallback { right: 0; } diff --git a/newspack-theme/template-parts/header/subpage-sidebar.php b/newspack-theme/template-parts/header/subpage-sidebar.php index 27ffd52dc..481c832a6 100644 --- a/newspack-theme/template-parts/header/subpage-sidebar.php +++ b/newspack-theme/template-parts/header/subpage-sidebar.php @@ -5,14 +5,16 @@ * @package Newspack */ +$subpage_toggle_side = get_theme_mod( 'subpage_toggle_side', 'left' ); + if ( newspack_is_amp() ) : ?> - + -