summaryrefslogtreecommitdiff
path: root/inc/widgets.php
diff options
context:
space:
mode:
authorMax2018-10-15 23:46:42 +0200
committerMax2018-10-15 23:46:42 +0200
commit00c9709fd9763542e848f6278db8ba26af5c9886 (patch)
tree92cb1c1ee4c467118e1e5a4c7e233d3feac6efa8 /inc/widgets.php
downloadfuselkoenig_de-00c9709fd9763542e848f6278db8ba26af5c9886.tar.gz
Initial commit.
Diffstat (limited to 'inc/widgets.php')
-rw-r--r--inc/widgets.php119
1 files changed, 119 insertions, 0 deletions
diff --git a/inc/widgets.php b/inc/widgets.php
new file mode 100644
index 0000000..fdd6611
--- /dev/null
+++ b/inc/widgets.php
@@ -0,0 +1,119 @@
+<?php
+/**
+ * Declaring widgets
+ *
+ * @package understrap
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly.
+}
+
+/**
+ * Count number of widgets in a sidebar
+ * Used to add classes to widget areas so widgets can be displayed one, two, three or four per row
+ */
+if ( ! function_exists( 'understrap_slbd_count_widgets' ) ) {
+ function understrap_slbd_count_widgets( $sidebar_id ) {
+ // If loading from front page, consult $_wp_sidebars_widgets rather than options
+ // to see if wp_convert_widget_settings() has made manipulations in memory.
+ global $_wp_sidebars_widgets;
+ if ( empty( $_wp_sidebars_widgets ) ) :
+ $_wp_sidebars_widgets = get_option( 'sidebars_widgets', array() );
+ endif;
+
+ $sidebars_widgets_count = $_wp_sidebars_widgets;
+
+ if ( isset( $sidebars_widgets_count[ $sidebar_id ] ) ) :
+ $widget_count = count( $sidebars_widgets_count[ $sidebar_id ] );
+ $widget_classes = 'widget-count-' . count( $sidebars_widgets_count[ $sidebar_id ] );
+ if ( $widget_count % 4 == 0 || $widget_count > 6 ) :
+ // Four widgets per row if there are exactly four or more than six
+ $widget_classes .= ' col-md-3';
+ elseif ( 6 == $widget_count ) :
+ // If two widgets are published
+ $widget_classes .= ' col-md-2';
+ elseif ( $widget_count >= 3 ) :
+ // Three widgets per row if there's three or more widgets
+ $widget_classes .= ' col-md-4';
+ elseif ( 2 == $widget_count ) :
+ // If two widgets are published
+ $widget_classes .= ' col-md-6';
+ elseif ( 1 == $widget_count ) :
+ // If just on widget is active
+ $widget_classes .= ' col-md-12';
+ endif;
+ return $widget_classes;
+ endif;
+ }
+}
+
+add_action( 'widgets_init', 'understrap_widgets_init' );
+
+if ( ! function_exists( 'understrap_widgets_init' ) ) {
+ /**
+ * Initializes themes widgets.
+ */
+ function understrap_widgets_init() {
+ register_sidebar( array(
+ 'name' => __( 'Right Sidebar', 'understrap' ),
+ 'id' => 'right-sidebar',
+ 'description' => __( 'Right sidebar widget area', 'understrap' ),
+ 'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</aside>',
+ 'before_title' => '<h3 class="widget-title">',
+ 'after_title' => '</h3>',
+ ) );
+
+ register_sidebar( array(
+ 'name' => __( 'Left Sidebar', 'understrap' ),
+ 'id' => 'left-sidebar',
+ 'description' => __( 'Left sidebar widget area', 'understrap' ),
+ 'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</aside>',
+ 'before_title' => '<h3 class="widget-title">',
+ 'after_title' => '</h3>',
+ ) );
+
+ register_sidebar( array(
+ 'name' => __( 'Hero Slider', 'understrap' ),
+ 'id' => 'hero',
+ 'description' => __( 'Hero slider area. Place two or more widgets here and they will slide!', 'understrap' ),
+ 'before_widget' => '<div class="carousel-item">',
+ 'after_widget' => '</div>',
+ 'before_title' => '',
+ 'after_title' => '',
+ ) );
+
+ register_sidebar( array(
+ 'name' => __( 'Hero Canvas', 'understrap' ),
+ 'id' => 'herocanvas',
+ 'description' => __( 'Full size canvas hero area for Bootstrap and other custom HTML markup', 'understrap' ),
+ 'before_widget' => '',
+ 'after_widget' => '',
+ 'before_title' => '',
+ 'after_title' => '',
+ ) );
+
+ register_sidebar( array(
+ 'name' => __( 'Top Full', 'understrap' ),
+ 'id' => 'statichero',
+ 'description' => __( 'Full top widget with dynamic grid', 'understrap' ),
+ 'before_widget' => '<div id="%1$s" class="static-hero-widget %2$s '. understrap_slbd_count_widgets( 'statichero' ) .'">',
+ 'after_widget' => '</div><!-- .static-hero-widget -->',
+ 'before_title' => '<h3 class="widget-title">',
+ 'after_title' => '</h3>',
+ ) );
+
+ register_sidebar( array(
+ 'name' => __( 'Footer Full', 'understrap' ),
+ 'id' => 'footerfull',
+ 'description' => __( 'Full sized footer widget with dynamic grid', 'understrap' ),
+ 'before_widget' => '<div id="%1$s" class="footer-widget %2$s '. understrap_slbd_count_widgets( 'footerfull' ) .'">',
+ 'after_widget' => '</div><!-- .footer-widget -->',
+ 'before_title' => '<h3 class="widget-title">',
+ 'after_title' => '</h3>',
+ ) );
+
+ }
+} // endif function_exists( 'understrap_widgets_init' ).