' . "\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;
}
}
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.
}
}
}
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;
}
}
}
/**
* 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;
}
}
/**
* 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' ), $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 );
}
}
/**
* 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 '
';
}
}
}
}
add_action( 'astra_masthead_content', 'astra_primary_navigation_markup', 10 );
/**
* Function to get site Footer
*/
if ( ! function_exists( 'astra_footer_markup' ) ) {
/**
* Site Footer -