' . "\n", esc_url( get_bloginfo( 'pingback_url' ) ) );
}
}
/**
* Schema for
tag.
*/
if ( ! function_exists( 'astra_schema_body' ) ) :
/**
* Adds schema tags to the body classes.
*
* @since 1.0.0
*/
function astra_schema_body() {
// Check conditions.
$is_blog = ( is_home() || is_archive() || is_attachment() || is_tax() || is_single() ) ? true : false;
// Set up default itemtype.
$itemtype = 'WebPage';
// Get itemtype for the blog.
$itemtype = ( $is_blog ) ? 'Blog' : $itemtype;
// Get itemtype for search results.
$itemtype = ( is_search() ) ? 'SearchResultsPage' : $itemtype;
// Get the result.
$result = apply_filters( 'astra_schema_body_itemtype', $itemtype );
// Return our HTML.
echo apply_filters( 'astra_schema_body', "itemtype='https://schema.org/" . esc_html( $result ) . "' itemscope='itemscope'" );
}
endif;
/**
* Adds custom classes to the array of body classes.
*/
if ( ! function_exists( 'astra_body_classes' ) ) {
/**
* Adds custom classes to the array of body classes.
*
* @since 1.0.0
* @param array $classes Classes for the body element.
* @return array
*/
function astra_body_classes( $classes ) {
if ( wp_is_mobile() ) {
$classes[] = 'ast-header-break-point';
}
// Apply separate container class to the body.
$content_layout = astra_get_content_layout();
if ( 'content-boxed-container' == $content_layout ) {
$classes[] = 'ast-separate-container';
} elseif ( 'boxed-container' == $content_layout ) {
$classes[] = 'ast-separate-container ast-two-container';
} elseif ( 'page-builder' == $content_layout ) {
$classes[] = 'ast-page-builder-template';
} elseif ( 'plain-container' == $content_layout ) {
$classes[] = 'ast-plain-container';
}
// Sidebar location.
$page_layout = 'ast-' . astra_page_layout();
$classes[] = esc_attr( $page_layout );
// Current Astra verion.
$classes[] = esc_attr( 'astra-' . ASTRA_THEME_VERSION );
$outside_menu = astra_get_option( 'header-display-outside-menu' );
if ( $outside_menu ) {
$classes[] = 'ast-header-custom-item-outside';
} else {
$classes[] = 'ast-header-custom-item-inside';
}
return $classes;
}
}// End if().
add_filter( 'body_class', 'astra_body_classes' );
/**
* Astra Pagination
*/
if ( ! function_exists( 'astra_number_pagination' ) ) {
/**
* Astra Pagination
*
* @since 1.0.0
* @return void Generate & echo pagination markup.
*/
function astra_number_pagination() {
global $numpages;
$enabled = apply_filters( 'astra_pagination_enabled', true );
if ( isset( $numpages ) && $enabled ) {
ob_start();
echo "';
$output = ob_get_clean();
echo apply_filters( 'astra_pagination_markup', $output ); // WPCS: XSS OK.
}
}
}// End if().
add_action( 'astra_pagination', 'astra_number_pagination' );
/**
* Return or echo site logo markup.
*/
if ( ! function_exists( 'astra_logo' ) ) {
/**
* Return or echo site logo markup.
*
* @since 1.0.0
* @param boolean $echo Echo markup.
* @return mixed echo or return markup.
*/
function astra_logo( $echo = true ) {
$display_site_tagline = astra_get_option( 'display-site-tagline' );
$display_site_title = astra_get_option( 'display-site-title' );
$html = '';
$has_custom_logo = apply_filters( 'astra_has_custom_logo', has_custom_logo() );
// Site logo.
if ( $has_custom_logo ) {
if ( apply_filters( 'astra_replace_logo_width', true ) ) {
add_filter( 'wp_get_attachment_image_src', 'astra_replace_header_logo', 10, 4 );
}
$html .= '';
$html .= get_custom_logo();
$html .= ' ';
if ( apply_filters( 'astra_replace_logo_width', true ) ) {
remove_filter( 'wp_get_attachment_image_src', 'astra_replace_header_logo', 10 );
}
}
if ( ! apply_filters( 'astra_disable_site_identity', false ) ) {
// Site Title.
$tag = 'span';
if ( is_home() || is_front_page() ) {
$tag = 'h1';
}
$site_title_markup = '<' . $tag . ' itemprop="name" class="site-title"> ' . get_bloginfo( 'name' ) . ' ' . $tag . '>';
// Site Description.
$site_tagline_markup = '' . get_bloginfo( 'description' ) . '
';
if ( $display_site_title || $display_site_tagline ) {
/* translators: 1: Site Title Markup, 2: Site Tagline Markup */
$html .= sprintf(
'
%1$s
%2$s
',
( $display_site_title ) ? $site_title_markup : '',
( $display_site_tagline ) ? $site_tagline_markup : ''
);
}
}
$html = apply_filters( 'astra_logo', $html, $display_site_title, $display_site_tagline );
/**
* Echo or Return the Logo Markup
*/
if ( $echo ) {
echo $html;
} else {
return $html;
}
}
}// End if().
/**
* Return the selected sections
*/
if ( ! function_exists( 'astra_get_dynamic_header_content' ) ) {
/**
* Return the selected sections
*
* @since 1.0.0
* @param string $option Custom content type. E.g. search, text-html etc.
* @return array Array of Custom contents.
*/
function astra_get_dynamic_header_content( $option ) {
$output = array();
$section = astra_get_option( $option );
switch ( $section ) {
case 'search':
$output[] = astra_get_search( $option );
break;
case 'text-html':
$output[] = astra_get_custom_html( $option . '-html' );
break;
case 'widget':
$output[] = astra_get_custom_widget( $option );
break;
default:
$output[] = apply_filters( 'astra_get_dynamic_header_content', '', $option, $section );
break;
}
return $output;
}
}
/**
* Adding Wrapper for Search Form.
*/
if ( ! function_exists( 'astra_get_search' ) ) {
/**
* Adding Wrapper for Search Form.
*
* @since 1.0.0
* @param string $option Search Option name.
* @return mixed Search HTML structure created.
*/
function astra_get_search( $option = '' ) {
$search_html = '
';
return apply_filters( 'astra_get_search', $search_html, $option );
}
}
/**
* Get custom HTML added by user.
*/
if ( ! function_exists( 'astra_get_custom_html' ) ) {
/**
* Get custom HTML added by user.
*
* @since 1.0.0
* @param string $option_name Option name.
* @return String TEXT/HTML added by user in options panel.
*/
function astra_get_custom_html( $option_name = '' ) {
$custom_html = '';
$custom_html_content = astra_get_option( $option_name );
if ( ! empty( $custom_html_content ) ) {
$custom_html = '' . do_shortcode( $custom_html_content ) . '
';
} elseif ( current_user_can( 'edit_theme_options' ) ) {
$custom_html = '' . __( 'Add Custom HTML', 'astra' ) . ' ';
}
return $custom_html;
}
}
/**
* Get Widget added by user.
*/
if ( ! function_exists( 'astra_get_custom_widget' ) ) {
/**
* Get custom widget added by user.
*
* @since 1.0.1.1
* @param string $option_name Option name.
* @return Widget added by user in options panel.
*/
function astra_get_custom_widget( $option_name = '' ) {
ob_start();
if ( 'header-main-rt-section' == $option_name ) {
$widget_id = 'header-widget';
}
if ( 'footer-sml-section-1' == $option_name ) {
$widget_id = 'footer-widget-1';
} elseif ( 'footer-sml-section-2' == $option_name ) {
$widget_id = 'footer-widget-2';
}
echo '';
astra_get_sidebar( $widget_id );
echo '
';
return ob_get_clean();
}
}
/**
* Function to get Small Left/Right Footer
*/
if ( ! function_exists( 'astra_get_small_footer' ) ) {
/**
* Function to get Small Left/Right Footer
*
* @since 1.0.0
* @param string $section Sections of Small Footer.
* @return mixed Markup of sections.
*/
function astra_get_small_footer( $section = '' ) {
$small_footer_type = astra_get_option( $section );
$output = null;
switch ( $small_footer_type ) {
case 'menu':
$output = astra_get_small_footer_menu();
break;
case 'custom':
$output = astra_get_small_footer_custom_text( $section . '-credit' );
break;
case 'widget':
$output = astra_get_custom_widget( $section );
break;
}
return $output;
}
}// End if().
/**
* Function to get Small Footer Custom Text
*/
if ( ! function_exists( 'astra_get_small_footer_custom_text' ) ) {
/**
* Function to get Small Footer Custom Text
*
* @since 1.0.14
* @param string $option Custom text option name.
* @return mixed Markup of custom text option.
*/
function astra_get_small_footer_custom_text( $option = '' ) {
$output = $option;
if ( '' != $option ) {
$output = astra_get_option( $option );
$output = str_replace( '[current_year]', date_i18n( __( 'Y', 'astra' ) ), $output );
$output = str_replace( '[site_title]', '', $output );
$theme_author = apply_filters(
'astra_theme_author', array(
'theme_name' => __( 'Astra', 'astra' ),
'theme_author_url' => 'http://wpastra.com/',
)
);
$output = str_replace( '[theme_author]', '' . $theme_author['theme_name'] . ' ', $output );
}
return do_shortcode( $output );
}
}// End if().
/**
* Function to get Footer Menu
*/
if ( ! function_exists( 'astra_get_small_footer_menu' ) ) {
/**
* Function to get Footer Menu
*
* @since 1.0.0
* @return html
*/
function astra_get_small_footer_menu() {
ob_start();
if ( has_nav_menu( 'footer_menu' ) ) {
wp_nav_menu(
array(
'container' => 'div',
'container_class' => 'footer-primary-navigation',
'theme_location' => 'footer_menu',
'menu_class' => 'nav-menu',
'items_wrap' => '',
'depth' => 1,
)
);
} else {
if ( is_user_logged_in() && current_user_can( 'edit_theme_options' ) ) {
?>
*
* @since 1.0.0
*/
function astra_header_markup() {
?>
';
echo astra_masthead_get_menu_items();
echo '';
}
} else {
$submenu_class = apply_filters( 'primary_submenu_border_class', ' submenu-with-border' );
// Fallback Menu if primary menu not set.
$fallback_menu_args = array(
'theme_location' => 'primary',
'menu_id' => 'primary-menu',
'menu_class' => 'main-navigation',
'container' => 'div',
'before' => '',
);
$items_wrap = '';
$items_wrap .= '';
$items_wrap .= '
';
$items_wrap .= '
';
$items_wrap .= ' ';
// Primary Menu.
$primary_menu_args = array(
'theme_location' => 'primary',
'menu_id' => 'primary-menu',
'menu_class' => 'main-header-menu ast-flex ast-justify-content-flex-end' . $submenu_class,
'container' => 'div',
'container_class' => 'main-header-bar-navigation',
'items_wrap' => $items_wrap,
);
if ( has_nav_menu( 'primary' ) ) {
// To add default alignment for navigation which can be added through any third party plugin.
// Do not add any CSS from theme except header alignment.
echo '';
wp_nav_menu( $primary_menu_args );
echo '
';
} else {
echo '';
echo '';
wp_page_menu( $fallback_menu_args );
echo ' ';
echo '
';
}
}// End if().
}
}// End if().
add_action( 'astra_masthead_content', 'astra_primary_navigation_markup', 10 );
/**
* Function to get site Footer
*/
if ( ! function_exists( 'astra_footer_markup' ) ) {
/**
* Site Footer -
*
* @since 1.0.0
*/
function astra_footer_markup() {
?>
.main-header-bar-wrap {
content: '';
}
@media all and ( min-width: px ) {
.main-header-bar-wrap {
content: '';
}
}
array(
'max-width' => '100%',
'padding-left' => '35px',
'padding-right' => '35px',
),
);
/* Parse CSS from array()*/
echo astra_parse_css( $genral_global_responsive, $header_break_point );
}
$dynamic_css = ob_get_clean();
// trim white space for faster page loading.
$dynamic_css = Astra_Enqueue_Scripts::trim_css( $dynamic_css );
wp_add_inline_style( 'astra-theme-css', $dynamic_css );
}
}// End if().
add_action( 'wp_enqueue_scripts', 'astra_header_breakpoint_style' );
/**
* Function to filter comment form's default fields
*/
if ( ! function_exists( 'astra_comment_form_default_fields_markup' ) ) {
/**
* Function filter comment form's default fields
*
* @since 1.0.0
* @param array $fields Array of comment form's default fields.
* @return array Comment form fields.
*/
function astra_comment_form_default_fields_markup( $fields ) {
$commenter = wp_get_current_commenter();
$req = get_option( 'require_name_email' );
$aria_req = ( $req ? " aria-required='true'" : '' );
$fields['author'] = '';
return $fields;
}
}
add_filter( 'comment_form_default_fields', 'astra_comment_form_default_fields_markup' );
/**
* Function to filter comment form arguments
*/
if ( ! function_exists( 'astra_comment_form_default_markup' ) ) {
/**
* Function filter comment form arguments
*
* @since 1.0.0
* @param array $args Comment form arguments.
* @return array
*/
function astra_comment_form_default_markup( $args ) {
$args['id_form'] = 'ast-commentform';
$args['title_reply'] = astra_default_strings( 'string-comment-title-reply', false );
$args['cancel_reply_link'] = astra_default_strings( 'string-comment-cancel-reply-link', false );
$args['label_submit'] = astra_default_strings( 'string-comment-label-submit', false );
$args['comment_field'] = '';
return $args;
}
}
add_filter( 'comment_form_defaults', 'astra_comment_form_default_markup' );
/**
* Function to filter comment form arguments
*/
if ( ! function_exists( 'astra_404_page_layout' ) ) {
/**
* Function filter comment form arguments
*
* @since 1.0.0
* @param array $layout Comment form arguments.
* @return array
*/
function astra_404_page_layout( $layout ) {
if ( is_404() ) {
$layout = 'no-sidebar';
}
return $layout;
}
}
add_filter( 'astra_page_layout', 'astra_404_page_layout', 10, 1 );
/**
* Return current content layout
*/
if ( ! function_exists( 'astra_get_content_layout' ) ) {
/**
* Return current content layout
*
* @since 1.0.0
* @return boolean content layout.
*/
function astra_get_content_layout() {
$value = false;
if ( is_singular() ) {
// If post meta value is empty,
// Then get the POST_TYPE content layout.
$content_layout = astra_get_option_meta( 'site-content-layout', '', true );
if ( empty( $content_layout ) ) {
$post_type = get_post_type();
if ( 'post' === $post_type || 'page' === $post_type ) {
$content_layout = astra_get_option( 'single-' . get_post_type() . '-content-layout' );
}
if ( 'default' == $content_layout || empty( $content_layout ) ) {
// Get the GLOBAL content layout value.
// NOTE: Here not used `true` in the below function call.
$content_layout = astra_get_option( 'site-content-layout', 'full-width' );
}
}
} else {
$content_layout = '';
$post_type = get_post_type();
if ( 'post' === $post_type ) {
$content_layout = astra_get_option( 'archive-' . get_post_type() . '-content-layout' );
}
if ( is_search() ) {
$content_layout = astra_get_option( 'archive-post-content-layout' );
}
if ( 'default' == $content_layout || empty( $content_layout ) ) {
// Get the GLOBAL content layout value.
// NOTE: Here not used `true` in the below function call.
$content_layout = astra_get_option( 'site-content-layout', 'full-width' );
}
}
return apply_filters( 'astra_get_content_layout', $content_layout );
}
}// End if().
/**
* Display Blog Post Excerpt
*/
if ( ! function_exists( 'astra_the_excerpt' ) ) {
/**
* Display Blog Post Excerpt
*
* @since 1.0.0
*/
function astra_the_excerpt() {
$excerpt_type = astra_get_option( 'blog-post-content' );
if ( 'full-content' == $excerpt_type ) {
the_content();
} else {
the_excerpt();
}
}
}
/**
* Display Sidebars
*/
if ( ! function_exists( 'astra_get_sidebar' ) ) {
/**
* Get Sidebar
*
* @since 1.0.1.1
* @param string $sidebar_id Sidebar Id.
* @return void
*/
function astra_get_sidebar( $sidebar_id ) {
if ( is_active_sidebar( $sidebar_id ) ) {
dynamic_sidebar( $sidebar_id );
} elseif ( current_user_can( 'edit_theme_options' ) ) {
?>
$font_weight ) {
$is_true = false;
$new_font_weight = '';
switch ( $font_name ) {
case 'Buda':
case 'Open Sans Condensed':
$is_true = true;
$new_font_weight = 300;
break;
case 'Coda Caption':
$is_true = true;
$new_font_weight = 800;
break;
case 'UnifrakturCook':
$is_true = true;
$new_font_weight = 700;
break;
}
if ( $is_true ) {
if ( in_array( 'normal', $font_weight ) ) {
$key = array_search( 'normal', $font_weight );
$fonts[ $font_name ][ $key ] = $new_font_weight;
}
}
}
return $fonts;
}
}// End if().
add_filter( 'astra_google_fonts', 'astra_google_fonts_callback' );
/**
* Get Footer widgets
*/
if ( ! function_exists( 'astra_get_footer_widget' ) ) {
/**
* Get Footer Default Sidebar
*
* @param string $sidebar_id Sidebar Id..
* @return void
*/
function astra_get_footer_widget( $sidebar_id ) {
if ( is_active_sidebar( $sidebar_id ) ) {
dynamic_sidebar( $sidebar_id );
} elseif ( current_user_can( 'edit_theme_options' ) ) {
global $wp_registered_sidebars;
$sidebar_name = '';
if ( isset( $wp_registered_sidebars[ $sidebar_id ] ) ) {
$sidebar_name = $wp_registered_sidebars[ $sidebar_id ]['name'];
}
?>
';
if ( ! $check_is_singular ) {
$output .= '';
}
$output .= $post_thumb;
if ( ! $check_is_singular ) {
$output .= ' ';
}
$output .= '';
}
}
}
if ( ! $check_is_singular ) {
$output = apply_filters( 'astra_blog_post_featured_image_after', $output );
}
if ( $echo ) {
echo $before . $output . $after; // WPCS: XSS OK.
} else {
return $before . $output . $after;
}
}
}// End if().
/**
* Function to check if it is Internet Explorer
*/
if ( ! function_exists( 'astra_check_is_ie' ) ) :
/**
* Function to check if it is Internet Explorer.
*
* @return true | false boolean
*/
function astra_check_is_ie() {
$is_ie = false;
$ua = htmlentities( $_SERVER['HTTP_USER_AGENT'], ENT_QUOTES, 'UTF-8' );
if ( strpos( $ua, 'Trident/7.0' ) !== false ) {
$is_ie = true;
}
return $is_ie;
}
endif; // End if().
/**
* Replace heade logo.
*/
if ( ! function_exists( 'astra_replace_header_logo' ) ) :
/**
* Replace header logo.
*
* @param array $image Size.
* @param int $attachment_id Image id.
* @param sting $size Size name.
* @param string $icon Icon.
*
* @return array Size of image
*/
function astra_replace_header_logo( $image, $attachment_id, $size, $icon ) {
$custom_logo_id = get_theme_mod( 'custom_logo' );
if ( ! is_customize_preview() && $custom_logo_id == $attachment_id && 'full' == $size ) {
$data = wp_get_attachment_image_src( $attachment_id, 'ast-logo-size' );
if ( false != $data ) {
$image = $data;
}
}
return $image;
}
endif; // End if().
/**
* Function to check if it is Internet Explorer
*/
if ( ! function_exists( 'astra_replace_header_attr' ) ) :
/**
* Replace header logo.
*
* @param array $attr Image.
* @param object $attachment Image obj.
* @param sting $size Size name.
*
* @return array Image attr.
*/
function astra_replace_header_attr( $attr, $attachment, $size ) {
$custom_logo_id = get_theme_mod( 'custom_logo' );
if ( $custom_logo_id == $attachment->ID ) {
$attach_data = array();
if ( ! is_customize_preview() ) {
$attach_data = wp_get_attachment_image_src( $attachment->ID, 'ast-logo-size' );
if ( isset( $attach_data[0] ) ) {
$attr['src'] = $attach_data[0];
}
}
$file_type = wp_check_filetype( $attr['src'] );
$file_extension = $file_type['ext'];
if ( 'svg' == $file_extension ) {
$attr['class'] = 'astra-logo-svg';
}
$retina_logo = astra_get_option( 'ast-header-retina-logo' );
$attr['srcset'] = '';
if ( apply_filters( 'astra_main_header_retina', true ) && '' !== $retina_logo ) {
$cutom_logo = wp_get_attachment_image_src( $custom_logo_id, 'full' );
$cutom_logo_url = $cutom_logo[0];
if ( astra_check_is_ie() ) {
// Replace header logo url to retina logo url.
$attr['src'] = $retina_logo;
}
$attr['srcset'] = $cutom_logo_url . ' 1x, ' . $retina_logo . ' 2x';
}
}
return $attr;
}
endif; // End if().
add_filter( 'wp_get_attachment_image_attributes', 'astra_replace_header_attr', 10, 3 );
/**
* Astra Color Palletes.
*/
if ( ! function_exists( 'astra_color_palette' ) ) :
/**
* Astra Color Palletes.
*
* @return array Color Palletes.
*/
function astra_color_palette() {
$color_palette = array(
'#000000',
'#ffffff',
'#dd3333',
'#dd9933',
'#eeee22',
'#81d742',
'#1e73be',
'#8224e3',
);
return apply_filters( 'astra_color_palettes', $color_palette );
}
endif; // End if().
if ( ! function_exists( 'astra_get_theme_name' ) ) :
/**
* Get theme name.
*
* @return string Theme Name.
*/
function astra_get_theme_name() {
$theme_name = __( 'Astra', 'astra' );
return apply_filters( 'astra_theme_name', $theme_name );
}
endif; // End if().