add_setting('dynamiques_logo_secondary', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', 'transport' => 'refresh', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'dynamiques_logo_secondary', array( 'label' => __('Logo alternatif (Au survol)', 'dynamiques'), 'section' => 'title_tagline', // Section native "Identité du site" 'settings' => 'dynamiques_logo_secondary', 'description' => __('Logo alternatif utilisé au survol du logo principal', 'dynamiques'), 'priority' => 9, // Juste après le logo principal ))); } add_action('customize_register', 'dynamiques_customize_register'); /** ------------------------------ LOGO SECONDAIRE UTILITIES ------------------------------*/ /** * Récupérer l'URL du logo secondaire * @return string|false L'URL du logo secondaire ou false si non configuré */ function get_secondary_logo_url() { return get_theme_mod('dynamiques_logo_secondary', false); } /** * Récupérer le HTML complet du logo secondaire * @param string $size Taille de l'image (par défaut 'full') * @param array $attr Attributs HTML supplémentaires * @return string|false Le HTML du logo ou false si non configuré */ function get_secondary_logo($size = 'full', $attr = array()) { $secondary_logo_url = get_secondary_logo_url(); if (!$secondary_logo_url) { return false; } // Attributs par défaut $default_attr = array( 'alt' => get_bloginfo('name') . ' - Logo alternatif', 'class' => 'secondary-logo' ); // Fusionner avec les attributs personnalisés $attr = array_merge($default_attr, $attr); // Essayer de récupérer l'ID de l'attachement $secondary_logo_id = attachment_url_to_postid($secondary_logo_url); if ($secondary_logo_id) { // Utiliser wp_get_attachment_image si on a l'ID return wp_get_attachment_image($secondary_logo_id, $size, false, $attr); } else { // Fallback : créer la balise img manuellement $attr_string = ''; foreach ($attr as $key => $value) { $attr_string .= ' ' . $key . '="' . esc_attr($value) . '"'; } return ''; } } /** * Afficher le logo secondaire directement * @param string $size Taille de l'image * @param array $attr Attributs HTML supplémentaires */ function the_secondary_logo($size = 'full', $attr = array()) { echo get_secondary_logo($size, $attr); } /** * Vérifier si un logo secondaire est configuré * @return bool */ function has_secondary_logo() { return !empty(get_secondary_logo_url()); }