From fde95b0dd7589e92270db7920b5833cd18916365 Mon Sep 17 00:00:00 2001 From: Nathan Rice Date: Wed, 1 Mar 2017 18:48:22 -0500 Subject: [PATCH] Add header widget area support. fixes #7. --- .../class-genesis-simple-sidebars-core.php | 26 +++++++++++++++++++ .../class-genesis-simple-sidebars-entry.php | 1 + includes/views/entry-metabox-content.php | 18 +++++++++++-- includes/views/term-edit-sidebar-form.php | 16 ++++++++++++ 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/includes/class-genesis-simple-sidebars-core.php b/includes/class-genesis-simple-sidebars-core.php index ee22349..1fb525c 100644 --- a/includes/class-genesis-simple-sidebars-core.php +++ b/includes/class-genesis-simple-sidebars-core.php @@ -65,6 +65,15 @@ class Genesis_Simple_Sidebars_Core { */ public function swap_sidebars() { + // Header + if ( is_registered_sidebar( 'header-right' ) ) { + global $wp_registered_sidebars; + $wp_registered_sidebars['ss-header-right-temp'] = $wp_registered_sidebars['header-right']; + unset( $wp_registered_sidebars['header-right'] ); + add_action( 'genesis_header_right', array( $this, 'do_header_right' ) ); + } + + // Sidebars remove_action( 'genesis_sidebar', 'genesis_do_sidebar' ); remove_action( 'genesis_sidebar_alt', 'genesis_do_sidebar_alt' ); add_action( 'genesis_sidebar', array( $this, 'do_primary_sidebar' ) ); @@ -72,6 +81,23 @@ class Genesis_Simple_Sidebars_Core { } + /** + * Output custom header widget area, if one is set. Otherwise output default. + * + * @since 2.1.0 + */ + public function do_header_right() { + + global $wp_registered_sidebars; + + if ( ! $this->do_sidebar( '_ss_header' ) ) { + $wp_registered_sidebars['header-right'] = $wp_registered_sidebars['ss-header-right-temp']; + } + + unset( $wp_registered_sidebars['ss-header-right-temp'] ); + + } + /** * Output custom primary sidebar, if one is set. Otherwise output default. * diff --git a/includes/class-genesis-simple-sidebars-entry.php b/includes/class-genesis-simple-sidebars-entry.php index d89e91e..5c05e3c 100644 --- a/includes/class-genesis-simple-sidebars-entry.php +++ b/includes/class-genesis-simple-sidebars-entry.php @@ -51,6 +51,7 @@ class Genesis_Simple_Sidebars_Entry { } $data = wp_parse_args( $_POST['genesis_simple_sidebars'], array( + '_ss_header' => '', '_ss_sidebar' => '', '_ss_sidebar_alt' => '', ) ); diff --git a/includes/views/entry-metabox-content.php b/includes/views/entry-metabox-content.php index 59c1324..f728049 100644 --- a/includes/views/entry-metabox-content.php +++ b/includes/views/entry-metabox-content.php @@ -3,7 +3,21 @@ $sidebars = Genesis_Simple_Sidebars()->core->get_sidebars(); global $wp_registered_sidebars; wp_nonce_field( 'genesis-simple-sidebars-save-entry', 'genesis-simple-sidebars-save-entry-nonce' ); -if ( isset( $wp_registered_sidebars['sidebar'] ) ) : ?> +if ( is_registered_sidebar( 'header-right' ) ) : ?> +

+ + +

+

diff --git a/includes/views/term-edit-sidebar-form.php b/includes/views/term-edit-sidebar-form.php index 44e369f..323ff41 100644 --- a/includes/views/term-edit-sidebar-form.php +++ b/includes/views/term-edit-sidebar-form.php @@ -3,6 +3,22 @@

+ + + + + + +
+ +