123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- <?php
- /**
- * Theme sidebars.
- *
- * @package Pen
- */
- if ( ! function_exists( 'pen_sidebars_register' ) ) {
- /**
- * Register widget areas.
- *
- * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
- */
- function pen_sidebars_register() {
- /* phpcs:disable */
- $sidebars = array(
- 'left' => array(
- 'name' => __( 'Left Sidebar', 'pen' ),
- 'description' => '',
- ),
- 'right' => array(
- 'name' => __( 'Right Sidebar', 'pen' ),
- 'description' => '',
- ),
- 'header-primary' => array(
- 'name' => __( 'Header - Primary', 'pen' ),
- 'description' => __( '(Stays in the middle of the header)', 'pen' ),
- ),
- 'header-secondary' => array(
- 'name' => __( 'Header - Secondary', 'pen' ),
- 'description' => __( '(Stays at the right of the header)', 'pen' ),
- ),
- 'search-top' => array(
- 'name' => __( 'Search - Top', 'pen' ),
- 'description' => __( 'Located above the bigger search box.', 'pen' ),
- ),
- 'search-left' => array(
- 'name' => __( 'Search - Left', 'pen' ),
- 'description' => __( 'Located left side of the bigger search box.', 'pen' ),
- ),
- 'search-right' => array(
- 'name' => __( 'Search - Right', 'pen' ),
- 'description' => __( 'Located right side of the bigger search box.', 'pen' ),
- ),
- 'search-bottom' => array(
- 'name' => __( 'Search - Bottom', 'pen' ),
- 'description' => __( 'Located beneath the bigger search box.', 'pen' ),
- ),
- 'top' => array(
- 'name' => __( 'Top', 'pen' ),
- 'description' => __( 'Located above the content area below the header and the navigation menu.', 'pen' ),
- ),
- 'bottom' => array(
- 'name' => __( 'Bottom', 'pen' ),
- 'description' => __( 'Located beneath the content area.', 'pen' ),
- ),
- 'content-top' => array(
- 'name' => __( 'Content - Top', 'pen' ),
- 'description' => __( 'Located above the content.', 'pen' ),
- ),
- 'content-bottom' => array(
- 'name' => __( 'Content - Bottom', 'pen' ),
- 'description' => __( 'Located beneath the content.', 'pen' ),
- ),
- 'footer-top' => array(
- 'name' => __( 'Footer - Top', 'pen' ),
- 'description' => '',
- ),
- 'footer-left' => array(
- 'name' => __( 'Footer - Left', 'pen' ),
- 'description' => '',
- ),
- 'footer-right' => array(
- 'name' => __( 'Footer - Right', 'pen' ),
- 'description' => '',
- ),
- 'footer-bottom' => array(
- 'name' => __( 'Footer - Bottom', 'pen' ),
- 'description' => '',
- ),
- );
- /* phpcs:enable */
- foreach ( $sidebars as $id => $sidebar ) {
- register_sidebar(
- array(
- 'name' => esc_html( $sidebar['name'] ),
- 'id' => 'sidebar-' . esc_attr( $id ),
- 'description' => esc_html( $sidebar['description'] ),
- 'before_widget' => '<aside id="%1$s" class="widget clearfix %2$s">',
- 'after_widget' => '</aside>',
- 'before_title' => '<h3 class="widget-title"><span><span>',
- 'after_title' => '</span></span></h3>',
- )
- );
- }
- }
- add_action( 'widgets_init', 'pen_sidebars_register' );
- }
- if ( ! function_exists( 'pen_sidebar_get' ) ) {
- /**
- * Sidebars.
- *
- * @param string $sidebar The sidebar ID.
- *
- * @since Pen 1.0.0
- * @return void
- */
- function pen_sidebar_get( $sidebar ) {
- if ( ! is_registered_sidebar( $sidebar ) ) {
- return;
- }
- if ( pen_sidebar_check( $sidebar ) && is_active_sidebar( $sidebar ) ) {
- $classes = trim(
- implode(
- ' ',
- array_filter(
- array(
- 'sidebar',
- 'clearfix',
- 'widget-area',
- )
- )
- )
- );
- if ( 'sidebar-bottom' === $sidebar ) {
- if ( pen_option_get( 'color_bottom_background_transparent' ) ) {
- $classes .= ' pen_is_transparent';
- } else {
- $classes .= ' pen_not_transparent';
- }
- }
- ?>
- <div id="<?php echo esc_attr( str_ireplace( array( 'sidebar-', '-' ), array( 'pen_', '_' ), $sidebar ) ); ?>" class="<?php echo esc_attr( $classes ); ?>" role="complementary">
- <?php
- if ( in_array( $sidebar, array( 'sidebar-top', 'sidebar-bottom' ), true ) ) {
- ?>
- <div class="pen_container">
- <?php
- }
- dynamic_sidebar( $sidebar );
- if ( in_array( $sidebar, array( 'sidebar-top', 'sidebar-bottom' ), true ) ) {
- ?>
- </div>
- <?php
- }
- pen_html_jump_menu( $sidebar );
- ?>
- </div>
- <?php
- }
- }
- }
- if ( ! function_exists( 'pen_sidebar_check' ) ) {
- /**
- * Checks sidebars visibility.
- *
- * @param string $sidebar The unique sidebar ID.
- *
- * @since Pen 1.0.0
- */
- function pen_sidebar_check( $sidebar ) {
- if ( ! is_registered_sidebar( $sidebar ) ) {
- return;
- }
- $sidebar = str_ireplace( '-', '_', $sidebar );
- $visible = true;
- if ( is_home() || is_front_page() ) {
- $visible = pen_option_get( 'front_' . $sidebar . '_display' ) ? false : true;
- }
- if ( is_singular() ) {
- $visible = get_post_meta( get_the_ID(), 'pen_' . $sidebar . '_display', true ) ? false : true;
- }
- return $visible;
- }
- }
|