120, 'width' => 520, 'flex-height' => true, 'flex-width' => true, ) ); add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', 'navigation-widgets', ) ); add_theme_support( 'responsive-embeds' ); add_theme_support( 'align-wide' ); register_nav_menus( array( 'primary' => __( 'Menu principal (En-tête)', 'cgt-fha' ), 'footer' => __( 'Accès rapides (Pied de page)', 'cgt-fha' ), ) ); } /** * Chargement des styles et scripts frontend (zéro dépendance externe). */ add_action( 'wp_enqueue_scripts', 'cgt_fha_enqueue_assets' ); function cgt_fha_enqueue_assets(): void { $style_ver = file_exists( CGT_FHA_DIR . '/style.css' ) ? (string) filemtime( CGT_FHA_DIR . '/style.css' ) : CGT_FHA_VERSION; $js_ver = file_exists( CGT_FHA_DIR . '/assets/js/main.js' ) ? (string) filemtime( CGT_FHA_DIR . '/assets/js/main.js' ) : CGT_FHA_VERSION; wp_enqueue_style( 'cgt-fha-style', get_stylesheet_uri(), array(), $style_ver ); wp_enqueue_script( 'cgt-fha-main', CGT_FHA_URI . '/assets/js/main.js', array(), $js_ver, array( 'in_footer' => true, 'strategy' => 'defer', ) ); } /** * Chargement des scripts admin uniquement sur la page de réglages du thème. */ add_action( 'admin_enqueue_scripts', 'cgt_fha_admin_enqueue_assets' ); function cgt_fha_admin_enqueue_assets( string $hook_suffix ): void { if ( 'appearance_page_cgt-fha-settings' !== $hook_suffix ) { return; } wp_enqueue_media(); $js_ver = file_exists( CGT_FHA_DIR . '/assets/js/main.js' ) ? (string) filemtime( CGT_FHA_DIR . '/assets/js/main.js' ) : CGT_FHA_VERSION; wp_enqueue_script( 'cgt-fha-admin', CGT_FHA_URI . '/assets/js/main.js', array(), $js_ver, true ); } /** * URL du logo d'en-tête (Personnaliser > Logo personnalisé ou Réglages UL CGT ou bannière par défaut). */ function cgt_fha_get_header_logo_url(): string { $custom_logo_id = (int) get_theme_mod( 'custom_logo' ); if ( $custom_logo_id > 0 ) { $src = wp_get_attachment_image_url( $custom_logo_id, 'full' ); if ( $src ) { return $src; } } $opts = cgt_fha_get_options(); return ! empty( $opts['header_logo_url'] ) ? (string) $opts['header_logo_url'] : CGT_FHA_URI . '/assets/img/banniere-ul-noir.png'; } /** * URL du logo clair du pied de page. */ function cgt_fha_get_footer_logo_url(): string { $opts = cgt_fha_get_options(); return ! empty( $opts['footer_logo_url'] ) ? (string) $opts['footer_logo_url'] : CGT_FHA_URI . '/assets/img/banniere-ul-blanc.png'; } /** * Retourne l'URL de la page listant toutes les actualités locales. */ function cgt_fha_get_local_news_archive_url(): string { $posts_page_id = (int) get_option( 'page_for_posts' ); if ( $posts_page_id > 0 ) { $link = get_permalink( $posts_page_id ); if ( $link ) { return $link; } } $opts = cgt_fha_get_options(); return ! empty( $opts['news_url'] ) ? (string) $opts['news_url'] : home_url( '/actualites/' ); } /** * Menu de secours pour la navigation principale si aucun menu n'est encore assigné dans Apparence > Menus. */ function cgt_fha_default_primary_menu(): void { $opts = cgt_fha_get_options(); $items = array( array( 'label' => 'Accueil', 'url' => home_url( '/' ), 'active' => is_front_page(), ), array( 'label' => 'Actualités', 'url' => cgt_fha_get_local_news_archive_url(), 'active' => is_home() || is_singular( 'post' ) || is_category() || is_tag(), ), array( 'label' => 'Calendrier', 'url' => (string) $opts['calendar_url'], 'active' => is_page( 'calendrier' ), ), array( 'label' => 'Contact', 'url' => (string) $opts['contact_url'], 'active' => is_page( 'contact' ), ), ); echo '