cgt-wp-theme/header.php
2026-11-12 21:27:56 +01:00

134 lines
5.1 KiB
PHP

<?php
/**
* En-tête du thème Union Locale CGT Foix Haute-Ariège.
*
* 1. Topbar sombre (#1c1e21) avec téléphone, e-mail et réseaux sociaux
* 2. Bandeau d'alerte mobilisation auto-expirant (#d20012)
* 3. Barre de navigation blanche (logo à gauche, menu horizontal à droite)
*
* @package CGT_FHA
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$opts = cgt_fha_get_options();
$phone_raw = (string) $opts['phone'];
$phone_href = preg_replace( '/[^0-9+]/', '', $phone_raw );
$email = (string) $opts['email'];
$logo_url = cgt_fha_get_header_logo_url();
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<a class="skip-link" href="#cgt-main-content"><?php esc_html_e( 'Aller au contenu principal', 'cgt-fha' ); ?></a>
<!-- 1. Topbar sombre -->
<div class="cgt-topbar" role="region" aria-label="<?php esc_attr_e( 'Coordonnées rapides et réseaux sociaux', 'cgt-fha' ); ?>">
<div class="cgt-container cgt-topbar__inner">
<div class="cgt-topbar__contacts">
<?php if ( '' !== $phone_raw ) : ?>
<a href="<?php echo esc_url( 'tel:' . $phone_href ); ?>" class="cgt-topbar__link">
<?php echo cgt_fha_render_icon( 'phone', 14 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<span><?php echo esc_html( $phone_raw ); ?></span>
</a>
<?php endif; ?>
<?php if ( '' !== $phone_raw && '' !== $email ) : ?>
<span class="cgt-topbar__sep" aria-hidden="true">/</span>
<?php endif; ?>
<?php if ( '' !== $email ) : ?>
<a href="<?php echo esc_url( 'mailto:' . $email ); ?>" class="cgt-topbar__link">
<?php echo cgt_fha_render_icon( 'mail', 14 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<span><?php echo esc_html( $email ); ?></span>
</a>
<?php endif; ?>
</div>
<div class="cgt-topbar__socials">
<?php if ( ! empty( $opts['facebook_url'] ) ) : ?>
<a href="<?php echo esc_url( (string) $opts['facebook_url'] ); ?>" class="cgt-topbar__social" target="_blank" rel="noopener noreferrer" aria-label="Facebook Union Locale CGT Foix Haute-Ariège">
<?php echo cgt_fha_render_icon( 'facebook', 16 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</a>
<?php endif; ?>
<?php if ( ! empty( $opts['instagram_url'] ) ) : ?>
<a href="<?php echo esc_url( (string) $opts['instagram_url'] ); ?>" class="cgt-topbar__social" target="_blank" rel="noopener noreferrer" aria-label="Instagram Union Locale CGT Foix Haute-Ariège">
<?php echo cgt_fha_render_icon( 'instagram', 16 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</a>
<?php endif; ?>
<?php if ( ! empty( $opts['youtube_url'] ) ) : ?>
<a href="<?php echo esc_url( (string) $opts['youtube_url'] ); ?>" class="cgt-topbar__social" target="_blank" rel="noopener noreferrer" aria-label="YouTube Union Locale CGT Foix Haute-Ariège">
<?php echo cgt_fha_render_icon( 'youtube', 16 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</a>
<?php endif; ?>
</div>
</div>
</div>
<!-- 2. Bandeau d'Alerte Mobilisation Auto-Expirant -->
<?php if ( cgt_fha_is_banner_active() ) : ?>
<div class="cgt-mob-banner" role="alert">
<?php if ( ! empty( $opts['banner_url'] ) ) : ?>
<a href="<?php echo esc_url( (string) $opts['banner_url'] ); ?>" class="cgt-mob-banner__inner">
<span><?php echo esc_html( (string) $opts['banner_text'] ); ?></span>
</a>
<?php else : ?>
<div class="cgt-mob-banner__inner">
<span><?php echo esc_html( (string) $opts['banner_text'] ); ?></span>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
<!-- 3. Barre de Navigation Principale -->
<header class="cgt-header" role="banner">
<div class="cgt-container cgt-header__inner">
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" class="cgt-brand" rel="home">
<img
src="<?php echo esc_url( $logo_url ); ?>"
alt="<?php echo esc_attr( get_bloginfo( 'name' ) ?: 'Union Locale CGT Foix Haute-Ariège' ); ?>"
class="cgt-brand__logo"
decoding="async"
fetchpriority="high"
/>
</a>
<button
type="button"
class="cgt-nav-toggle"
aria-controls="cgt-primary-nav"
aria-expanded="false"
aria-label="<?php esc_attr_e( 'Ouvrir le menu principal', 'cgt-fha' ); ?>"
>
<?php echo cgt_fha_render_icon( 'menu', 22 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</button>
<nav id="cgt-primary-nav" class="cgt-nav" aria-label="<?php esc_attr_e( 'Navigation principale', 'cgt-fha' ); ?>">
<?php
wp_nav_menu(
array(
'theme_location' => 'primary',
'container' => false,
'menu_class' => 'cgt-nav__list',
'depth' => 1,
'fallback_cb' => 'cgt_fha_default_primary_menu',
)
);
?>
</nav>
</div>
</header>
<main id="cgt-main-content" tabindex="-1">
<?php
// Hook pour extensions éventuelles juste après l'ouverture du contenu principal.
do_action( 'cgt_fha_main_open' );