' . __( 'Add Custom HTML', 'astra-addon' ) . ''; } return html_entity_decode( $custom_html, ENT_COMPAT, 'UTF-8' ); } /** * Advanced Header Custom Menu Outside/Inside * * @param string|boolean $value display menu outside or not. * @return string|boolean */ public function header_display_outside_menu( $value ) { $custom_menu_item = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'custom-menu-item' ); if ( ! ( self::advanced_header_enabled() ) || ( is_front_page() && 'posts' == get_option( 'show_on_front' ) ) || 'default' == $custom_menu_item || '' == $custom_menu_item ) { return $value; } $display_outside = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'custom-menu-item-outside' ); return $display_outside; } /** * Advanced Header Custom Menu Item * * @param string $value Custom Menu Item. * @return string */ public function header_custom_menu_item( $value ) { $custom_menu_item = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'custom-menu-item' ); if ( ! ( self::advanced_header_enabled() ) || ( is_front_page() && 'posts' == get_option( 'show_on_front' ) ) || 'default' == $custom_menu_item || '' == $custom_menu_item ) { return $value; } return $custom_menu_item; } /** * Remove Post Featured Image If advanced headers is enable with featured image as background image * * @param boolean $is_featured Markup of featured image. * @return boolean $is_featured */ public function remove_post_thumbnail( $is_featured ) { if ( self::advanced_header_enabled() ) { if ( ! ( is_archive() || is_home() || is_search() || is_404() || wp_doing_ajax() ) ) { $page_post_featured = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'page-post-featured' ); $advanced_headers_layout = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_layout_option( 'layout' ); // If selected Post / Page Featured image. if ( 'disable' != $advanced_headers_layout && 'enabled' == $page_post_featured ) { $is_featured = false; } } } return $is_featured; } /** * Add cutom Logo for Advanced Headers * * @param string $html Markup of custom logo. * @param string $blog_id blog id. * @return strung $html updated Markup of Custom Logo. */ public function add_custom_logo( $html, $blog_id ) { $advanced_headers_merged = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_layout_option( 'merged' ); $advanced_headers_inherit_logo = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_layout_option( 'diff-header-logo' ); if ( ! $advanced_headers_merged || ( is_front_page() && 'posts' == get_option( 'show_on_front' ) ) || 'enabled' != $advanced_headers_inherit_logo ) { return $html; } $custom_logo_id = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'logo-id' ); // Site logo. if ( $custom_logo_id ) { add_filter( 'astra_main_header_retina', '__return_false' ); add_filter( 'wp_get_attachment_image_attributes', array( $this, 'adv_replace_header_logo_attr' ), 10, 3 ); // Custom Site logo. $html = sprintf( '%2$s', esc_url( home_url( '/' ) ), wp_get_attachment_image( $custom_logo_id, 'ast-adv-header-logo-size', false, array( 'class' => 'custom-logo', ) ), astra_attr( 'site-title-custom-link', array( 'class' => '', ) ) ); remove_filter( 'wp_get_attachment_image_attributes', array( $this, 'adv_replace_header_logo_attr' ) ); } return $html; } /** * Replace header logo. * * @param array $attr Image. * @param object $attachment Image obj. * @param sting $size Size name. * * @return array Image attr. */ public function adv_replace_header_logo_attr( $attr, $attachment, $size ) { $custom_logo_id = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'logo-id' ); if ( $custom_logo_id == $attachment->ID ) { $attach_data = array(); $attach_data = wp_get_attachment_image_src( $attachment->ID, 'ast-adv-header-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['width'] = '100%'; $attr['height'] = '100%'; $attr['class'] = 'astra-logo-svg'; } $diff_retina_logo = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_layout_option( 'diff-header-retina-logo' ); if ( 'enabled' === $diff_retina_logo ) { $custom_logo = $attr['src']; $retina_logo = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'retina-logo-url' ); $attr['srcset'] = ''; if ( '' !== $retina_logo ) { if ( astra_check_is_ie() ) { // Replace header logo url to retina logo url. $attr['src'] = $retina_logo; } $attr['srcset'] = $custom_logo . ' 1x, ' . $retina_logo . ' 2x'; } } } return $attr; } /** * Remove Prefix : from Archive title * * @param string $title Default title. * @return string $title updated title. */ public function archive_title( $title ) { if ( is_category() ) { $title = single_cat_title( '', false ); } elseif ( is_tag() ) { $title = single_tag_title( '', false ); } elseif ( is_author() ) { // Added author details with hCard if schema is enabled. $title = ' '' ) ) . '>' . get_the_author() . ''; } elseif ( is_tax() ) { $title = single_term_title( '', false ); } return $title; } /** * Add Body Classes * * @param array $classes Body Class Array. * @return array */ public function body_classes( $classes ) { $advanced_headers_layout = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_layout_option( 'layout' ); $transparent_header = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_layout_option( 'merged' ); $custom_logo_id = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'logo-id' ); // Site logo. if ( $custom_logo_id && $transparent_header ) { $classes[] = 'ast-advanced-headers-different-logo'; } if ( $advanced_headers_layout ) { $classes[] = 'ast-advanced-headers'; } if ( 'enabled' == $transparent_header && 'disable' == $advanced_headers_layout ) { // Add class. $classes[] = 'ast-transparent-header'; } return $classes; } /** * Advanced Headers Bar markup loader if we are using merged with header * * @since 1.0.0 */ public function advanced_header_merged() { // Get our options. $advanced_headers_merged = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_layout_option( 'merged' ); $advanced_header_bg_size = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'bg-size' ); $advanced_header_parallax_device = Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'parallax-device' ); if ( ! self::advanced_header_enabled() || ( is_front_page() && 'posts' == get_option( 'show_on_front' ) ) ) { return; } if ( ! $advanced_headers_merged ) { return; } $combined = 'ast-merged-advanced-header ast-title-bar-wrap'; // Parallax variable. $parallax = ( 'none' !== $advanced_header_parallax_device ) ? ' ast-advanced-headers-parallax' : ''; // Parallax Device. $parallax_device = ( 'none' !== $advanced_header_parallax_device ) ? $advanced_header_parallax_device : ''; // Parallax speed variable. $parallax_speed = apply_filters( 'astra_advanced_header_parallax_speed', 2 ); // Full Screen vertical align center. $vertical_center = ' ast-advanced-headers-vertical-center'; // Full Screen. $full_screen = ( 'full-screen' == $advanced_header_bg_size ) ? ' ast-full-advanced-header' : ''; // Add advanced header wrapper classes. printf( '