FEATURE Handling a secondary logo
This commit is contained in:
parent
5b9dbed556
commit
402f5e3350
|
|
@ -53,3 +53,103 @@ function dynamiques_disable_mime_check($data, $file, $filename, $mimes)
|
|||
return $data;
|
||||
}
|
||||
add_filter('wp_check_filetype_and_ext', 'dynamiques_disable_mime_check', 10, 4);
|
||||
|
||||
|
||||
/** ------------------------------
|
||||
LOGO ALTERNATIF CUSTOMIZER
|
||||
------------------------------*/
|
||||
|
||||
/**
|
||||
* Ajouter l'option de logo alternatif dans le customizer
|
||||
* (Le logo principal est géré nativement par WordPress dans "Identité du site")
|
||||
*/
|
||||
function dynamiques_customize_register($wp_customize)
|
||||
{
|
||||
// Ajouter le logo alternatif dans la section "Identité du site" existante
|
||||
$wp_customize->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 '<img src="' . esc_url($secondary_logo_url) . '"' . $attr_string . '>';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user