Просмотр исходного кода

Seedlet: Add controls to show/hide header and footer elements on the homepage.

Kjell Reigstad 4 лет назад
Родитель
Сommit
5fa26f2544
3 измененных файлов с 97 добавлено и 0 удалено
  1. 22 0
      seedlet/inc/wpcom-customize-preview.js
  2. 31 0
      seedlet/inc/wpcom-style.css
  3. 44 0
      seedlet/inc/wpcom.php

+ 22 - 0
seedlet/inc/wpcom-customize-preview.js

@@ -93,4 +93,26 @@ function changeColorLuminescence( hex, amount ) {
 			}
 		} );
 	} );
+
+	// Hide Site Header
+	wp.customize( 'hide_site_header', function( value ) {
+		value.bind( function( to ) {
+			if ( true === to ) {
+				$( 'body' ).addClass( 'hide-homepage-header' );
+			} else {
+				$( 'body' ).removeClass( 'hide-homepage-header' );
+			}
+		} );
+	} );
+
+	// Hide Site Footer Menu
+	wp.customize( 'hide_site_footer', function( value ) {
+		value.bind( function( to ) {
+			if ( true === to ) {
+				$( 'body' ).addClass( 'hide-homepage-footer' );
+			} else {
+				$( 'body' ).removeClass( 'hide-homepage-footer' );
+			}
+		} );
+	} );
 } )( jQuery );

+ 31 - 0
seedlet/inc/wpcom-style.css

@@ -13,6 +13,37 @@
 	margin-top: 0;
 }
 
+/**
+ * Hide site header on the homepage
+ */
+.home.page.hide-homepage-header .site-header {
+	display: none;
+}
+
+.home.page.hide-homepage-header .entry-content {
+	margin-top: 0;
+	padding-top: 0;
+}
+
+.home.page.hide-homepage-header .site-main > article > .entry-footer {
+	border-width: 0;
+}
+
+/* Move some full-width blocks up to the top of the screen) */
+.home.page.hide-homepage-header .entry-content > .wp-block-image.alignfull:first-child,
+.home.page.hide-homepage-header .entry-content > .wp-block-cover.alignfull:first-child,
+.home.page.hide-homepage-header .entry-content > .wp-block-media-text.alignfull:first-child {
+	margin-top: calc(-1 * var(--global--spacing-vertical));
+}
+
+ /**
+ * Hide footer navigation on the homepage
+ */
+.home.page.hide-homepage-footer .footer-navigation,
+.home.page.hide-homepage-footer .widget-area {
+	display: none;
+}
+
 /**
  * Fix Direct Manipulation icons in the Customizer
  */

+ 44 - 0
seedlet/inc/wpcom.php

@@ -166,6 +166,38 @@ function seedlet_wpcom_customize_update( $wp_customize ) {
 		'priority'	  => 10,
 		'type'		  => 'hidden',
 	) );
+
+	$wp_customize->add_setting( 'hide_site_header', array(
+		'default'              => false,
+		'type'                 => 'theme_mod',
+		'transport'            => 'postMessage',
+		'sanitize_callback'    => 'seedlet_sanitize_checkbox',
+	) );
+
+	$wp_customize->add_control( 'hide_site_header', array(
+		'label'		  => esc_html__( 'Hide the Site Header', 'seedlet' ),
+		'description' => esc_html__( 'Check to hide the site header, if your homepage is set to display a static page.', 'seedlet' ),
+		'section'	  => 'static_front_page',
+		'priority'	  => 10,
+		'type'		  => 'checkbox',
+		'settings'	  => 'hide_site_header',
+	) );
+
+	$wp_customize->add_setting( 'hide_site_footer', array(
+		'default'              => false,
+		'type'                 => 'theme_mod',
+		'transport'            => 'postMessage',
+		'sanitize_callback'    => 'seedlet_sanitize_checkbox',
+	) );
+
+	$wp_customize->add_control( 'hide_site_footer', array(
+		'label'		  => esc_html__( 'Hide the Site Footer Menu & Widgets', 'seedlet' ),
+		'description' => esc_html__( 'Check to hide the site menu & widgets in the footer, if your homepage is set to display a static page.', 'seedlet' ),
+		'section'	  => 'static_front_page',
+		'priority'	  => 10,
+		'type'		  => 'checkbox',
+		'settings'	  => 'hide_site_footer',
+	) );
 }
 add_action( 'customize_register', 'seedlet_wpcom_customize_update' );
 
@@ -215,6 +247,18 @@ function seedlet_wpcom_body_classes( $classes ) {
 		$classes[] = 'hide-homepage-title';
 	}
 
+	$hide_site_header = get_theme_mod( 'hide_site_header', false );
+
+	if ( true === $hide_site_header ) {
+		$classes[] = 'hide-homepage-header';
+	}
+
+	$hide_site_footer = get_theme_mod( 'hide_site_footer', false );
+
+	if ( true === $hide_site_footer ) {
+		$classes[] = 'hide-homepage-footer';
+	}
+
 	$credit_option = get_option( 'footercredit' );
 
 	if ( 'hidden' == $credit_option ) {