<?php
/**
* Header Functions
*
* @package GridFeel WordPress Theme
* @copyright Copyright (C) 2025 ThemesDNA
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
* @author ThemesDNA <themesdna@gmail.com>
*/

/**
 * Add a pingback url auto-discovery header for single posts, pages, or attachments.
 */
function gridfeel_pingback_header() {
    if ( is_singular() && pings_open() ) {
        echo '<link rel="pingback" href="', esc_url( get_bloginfo( 'pingback_url' ) ), '">';
    }
}
add_action( 'wp_head', 'gridfeel_pingback_header' );

// Get custom-logo URL
function gridfeel_custom_logo() {
    if ( ! has_custom_logo() ) {return;}
    $gridfeel_custom_logo_id = get_theme_mod( 'custom_logo' );
    $gridfeel_logo = wp_get_attachment_image_src( $gridfeel_custom_logo_id , 'full' );
    $gridfeel_logo_src = $gridfeel_logo[0];
    return apply_filters( 'gridfeel_custom_logo', $gridfeel_logo_src );
}

// Site Title
function gridfeel_site_title() {
    if ( is_front_page() && is_home() ) { ?>
            <h1 class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } elseif ( is_home() ) { ?>
            <h1 class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } elseif ( is_singular() ) { ?>
            <p class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } elseif ( is_category() ) { ?>
            <p class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } elseif ( is_tag() ) { ?>
            <p class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } elseif ( is_author() ) { ?>
            <p class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } elseif ( is_archive() && !is_category() && !is_tag() && !is_author() ) { ?>
            <p class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } elseif ( is_search() ) { ?>
            <p class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } elseif ( is_404() ) { ?>
            <p class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php } else { ?>
            <h1 class="gridfeel-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
            <?php if ( !(gridfeel_get_option('hide_tagline')) ) { ?><p class="gridfeel-site-description"><?php bloginfo( 'description' ); ?></p><?php } ?>
    <?php }
}

function gridfeel_header_image_destination() {
    $url = home_url( '/' );

    if ( gridfeel_get_option('header_image_destination') ) {
        $url = gridfeel_get_option('header_image_destination');
    }

    return apply_filters( 'gridfeel_header_image_destination', $url );
}

function gridfeel_header_image_alt_text() {
    $header_image_alt_text = get_bloginfo( 'name' );

    if ( gridfeel_get_option('header_image_alt_text') ) {
        $header_image_alt_text = gridfeel_get_option('header_image_alt_text');
    }

    return apply_filters( 'gridfeel_header_image_alt_text', $header_image_alt_text );
}

function gridfeel_header_image_markup() {
    global $post;

    if ( get_header_image() ) {
        if ( gridfeel_get_option('remove_header_image_link') ) {
            the_header_image_tag( array( 'class' => 'gridfeel-header-img', 'alt' => esc_attr( gridfeel_header_image_alt_text() ) ) );
        } else { ?>
            <a href="<?php echo esc_url( gridfeel_header_image_destination() ); ?>" rel="home" class="gridfeel-header-img-link"><?php the_header_image_tag( array( 'class' => 'gridfeel-header-img', 'alt' => esc_attr( gridfeel_header_image_alt_text() ) ) ); ?></a>
        <?php }
    }
}

function gridfeel_header_image_details() {
    global $post;

    $header_image_custom_title = '';
    if ( gridfeel_get_option('header_image_custom_title') ) {
        $header_image_custom_title = gridfeel_get_option('header_image_custom_title');
    }

    $header_image_custom_description = '';
    if ( gridfeel_get_option('header_image_custom_description') ) {
        $header_image_custom_description = gridfeel_get_option('header_image_custom_description');
    }

    if ( !(gridfeel_get_option('hide_header_image_details')) ) {
    if ( gridfeel_get_option('header_image_custom_text') ) {
        if ( $header_image_custom_title || $header_image_custom_description ) { ?>
            <div class="gridfeel-header-image-info">
            <div class="gridfeel-header-image-info-inside">
                <?php if ( !(gridfeel_get_option('hide_header_image_title')) ) { ?><?php if ( $header_image_custom_title ) { ?><p class="gridfeel-header-image-site-title gridfeel-header-image-block"><?php echo wp_kses_post( force_balance_tags( do_shortcode($header_image_custom_title) ) ); ?></p><?php } ?><?php } ?>
                <?php if ( !(gridfeel_get_option('hide_header_image_description')) ) { ?><?php if ( $header_image_custom_description ) { ?><p class="gridfeel-header-image-site-description gridfeel-header-image-block"><?php echo wp_kses_post( force_balance_tags( do_shortcode($header_image_custom_description) ) ); ?></p><?php } ?><?php } ?>
            </div>
            </div>
        <?php }
    } else { ?>
        <div class="gridfeel-header-image-info">
        <div class="gridfeel-header-image-info-inside">
            <?php if ( !(gridfeel_get_option('hide_header_image_title')) ) { ?><p class="gridfeel-header-image-site-title gridfeel-header-image-block"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p><?php } ?>
            <?php if ( !(gridfeel_get_option('hide_header_image_description')) ) { ?><p class="gridfeel-header-image-site-description gridfeel-header-image-block"><?php bloginfo( 'description' ); ?></p><?php } ?>
        </div>
        </div>
    <?php }
    }
}

function gridfeel_header_image_wrapper() { ?>
    <div class="gridfeel-header-image gridfeel-clearfix">
    <?php gridfeel_header_image_markup(); ?>
    <?php gridfeel_header_image_details(); ?>
    </div>
<?php }

function gridfeel_header_image() {
    if ( gridfeel_get_option('hide_header_image') ) { return; }
    if ( get_header_image() ) {
        gridfeel_header_image_wrapper();
    }
}