211 lines
5.5 KiB
PHP
211 lines
5.5 KiB
PHP
<?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;
|