diff options
Diffstat (limited to 'inc/widgets.php')
-rw-r--r-- | inc/widgets.php | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/inc/widgets.php b/inc/widgets.php new file mode 100644 index 0000000..4d06bdd --- /dev/null +++ b/inc/widgets.php @@ -0,0 +1,211 @@ +<?php
+/**
+ * Widget and sidebars related functions
+ *
+ * @package Astra
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since Astra 1.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly.
+}
+
+/**
+ * WordPress filter - Widget Tags
+ */
+if ( ! function_exists( 'astra_widget_tag_cloud_args' ) ) :
+
+ /**
+ * WordPress filter - Widget Tags
+ *
+ * @param array $args Tag arguments.
+ * @return array Modified tag arguments.
+ */
+ function astra_widget_tag_cloud_args( $args = array() ) {
+
+ $sidebar_link_font_size = astra_get_option( 'font-size-body' );
+ $sidebar_link_font_size['desktop'] = ( '' != $sidebar_link_font_size['desktop'] ) ? $sidebar_link_font_size['desktop'] : 15;
+
+ $args['smallest'] = intval( $sidebar_link_font_size['desktop'] ) - 2;
+ $args['largest'] = intval( $sidebar_link_font_size['desktop'] ) + 3;
+ $args['unit'] = 'px';
+
+ return apply_filters( 'astra_widget_tag_cloud_args', $args );
+ }
+ add_filter( 'widget_tag_cloud_args', 'astra_widget_tag_cloud_args', 90 );
+
+endif;
+
+/**
+ * WordPress filter - Widget Categories
+ */
+if ( ! function_exists( 'astra_filter_widget_tag_cloud' ) ) :
+
+ /**
+ * WordPress filter - Widget Categories
+ *
+ * @param array $tags_data Tags data.
+ * @return array Modified tags data.
+ */
+ function astra_filter_widget_tag_cloud( $tags_data ) {
+
+ if ( is_tag() ) {
+ foreach ( $tags_data as $key => $tag ) {
+ if ( get_queried_object_id() === (int) $tags_data[ $key ]['id'] ) {
+ $tags_data[ $key ]['class'] = $tags_data[ $key ]['class'] . ' current-item';
+ }
+ }
+ }
+
+ return apply_filters( 'astra_filter_widget_tag_cloud', $tags_data );
+ }
+ add_filter( 'wp_generate_tag_cloud_data', 'astra_filter_widget_tag_cloud' );
+
+endif;
+
+/**
+ * Register widget area.
+ */
+if ( ! function_exists( 'astra_widgets_init' ) ) :
+
+ /**
+ * Register widget area.
+ *
+ * @see https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
+ */
+ function astra_widgets_init() {
+
+ /**
+ * Register Main Sidebar
+ */
+ register_sidebar(
+ apply_filters(
+ 'astra_widgets_init',
+ array(
+ 'name' => esc_html__( 'Main Sidebar', 'astra' ),
+ 'id' => 'sidebar-1',
+ 'description' => '',
+ 'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</aside>',
+ 'before_title' => '<h2 class="widget-title">',
+ 'after_title' => '</h2>',
+ )
+ )
+ );
+
+ /**
+ * Register Header Widgets area
+ */
+ register_sidebar(
+ apply_filters(
+ 'astra_header_widgets_init',
+ array(
+ 'name' => esc_html__( 'Header', 'astra' ),
+ 'id' => 'header-widget',
+ 'description' => '',
+ 'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</aside>',
+ 'before_title' => '<h2 class="widget-title">',
+ 'after_title' => '</h2>',
+ )
+ )
+ );
+
+ /**
+ * Register Footer Bar Widgets area
+ */
+ register_sidebar(
+ apply_filters(
+ 'astra_footer_1_widgets_init',
+ array(
+ 'name' => esc_html__( 'Footer Bar Section 1', 'astra' ),
+ 'id' => 'footer-widget-1',
+ 'description' => '',
+ 'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</aside>',
+ 'before_title' => '<h2 class="widget-title">',
+ 'after_title' => '</h2>',
+ )
+ )
+ );
+
+ register_sidebar(
+ apply_filters(
+ 'astra_footer_2_widgets_init',
+ array(
+ 'name' => esc_html__( 'Footer Bar Section 2', 'astra' ),
+ 'id' => 'footer-widget-2',
+ 'description' => '',
+ 'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</aside>',
+ 'before_title' => '<h2 class="widget-title">',
+ 'after_title' => '</h2>',
+ )
+ )
+ );
+
+ /**
+ * Register Footer Widgets area
+ */
+ register_sidebar(
+ apply_filters(
+ 'astra_advanced_footer_widget_1_args',
+ array(
+ 'name' => esc_html__( 'Footer Widget Area 1', 'astra' ),
+ 'id' => 'advanced-footer-widget-1',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<h2 class="widget-title">',
+ 'after_title' => '</h2>',
+ )
+ )
+ );
+
+ register_sidebar(
+ apply_filters(
+ 'astra_advanced_footer_widget_2_args',
+ array(
+ 'name' => esc_html__( 'Footer Widget Area 2', 'astra' ),
+ 'id' => 'advanced-footer-widget-2',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<h2 class="widget-title">',
+ 'after_title' => '</h2>',
+ )
+ )
+ );
+
+ register_sidebar(
+ apply_filters(
+ 'astra_advanced_footer_widget_3_args',
+ array(
+ 'name' => esc_html__( 'Footer Widget Area 3', 'astra' ),
+ 'id' => 'advanced-footer-widget-3',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<h2 class="widget-title">',
+ 'after_title' => '</h2>',
+ )
+ )
+ );
+
+ register_sidebar(
+ apply_filters(
+ 'astra_advanced_footer_widget_4_args',
+ array(
+ 'name' => esc_html__( 'Footer Widget Area 4', 'astra' ),
+ 'id' => 'advanced-footer-widget-4',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<h2 class="widget-title">',
+ 'after_title' => '</h2>',
+ )
+ )
+ );
+ }
+ add_action( 'widgets_init', 'astra_widgets_init' );
+
+endif;
|