Créateur de thèmes WordPress :: Formateur :: Web Designer

WordPress :: Ajout d’une image d’en-tête retina (HiDPI) pour votre site

Publié le : 

Modifié le : 

Par : 

Dans ce tutoriel nous verrons comment ajouter un en-tête sur mesure qui supporte les images en retina (HiDPI). Dans cet exemple, j’ai choisi le thème Genesis Sample.

Ajout du theme support

Custom Headers existe dans WordPress depuis la Version 2.1. Il s’ajoute avec la fonction add_theme_support permet d’ajouter un custom-header qui remplacera le titre du site et sera cliquable.
Ici, je veux au final un logo qui s’affichera en suivant la taille suivante: 600px par 160px. Je dois donc réaliser une image retina (HiDPI) de 1200px par 320px. Vous pouvez télécharger un équivalent du visuel avec ce lien.

Code à ajouter dans votre thème

Vous devez placer ce code dans le fichier functions.php de votre thème. Attention a bien vérifier que votre thème est bien compatible avec cette fonctionnalité.

//* Add support for custom header
add_theme_support( 'custom-header', array(
	'header_image' => ',
	'header-selector' => '.site-title a',
	'header-text' => false,
	'height' => 1200,
	'width' => 320,
) );

Attention, si vous utilisez les attributs de cette fonction flex-height et flex-width, les réglages seront beaucoup plus complexes pour l’image retina. L’administrateur du site pourra recadrer le visuel dans le back-office avec des ratios qui pourront être différents.

Ajout d’une image par défaut

Par contre, on peut ajouter une image par défaut avec default-image. Ce qui donnera

//* Add support for custom header 
add_theme_support( 'custom-header', array( 
	'header_image' => ', 
	'header-selector' => '.site-title a', 
	'header-text' => false, 
	'height' => 1200, 
	'width' => 320, 
	'default-image' => get_stylesheet_directory_uri() . '/images/header.jpg', ) );
) );

Intégration du visuel

Ajouter depuis le menu Personnaliser

Depuis la barre d’outils quand vous êtes connectés à votre site WordPress.

Ajouter une image d'en-tête dans le personnaliseur WordPress

Quand on clique sur Ajouter une nouvelle image, on est invité à sélectionner depuis les onglets Envoyer des fichiers ou Bibliothèque de médias.

Sélectionner l'image d'en-tête dans WordPress

Au final, je cherche à avoir une image de 600px de large qui s’affiche. Je veille donc à bien sélectionner une taille qui fait le double dans la largeur et la hauteur.

Recadrage de l’image

Une fois votre image sélectionnée, une interface vous propose de recadrer ce visuel:

Outil pour recadre l'image d'en-tête dans WordPress

Attention, le comportement de l’outil qui recadre dépendra des options ajoutées dans add_theme_support . Ici, je n’ai pas ajouté les attributs flex-height et flex-width sur true. Du coup, mon outil de recadrage respecte le ratio initial de ma fonction. Cette approche est la plus facile si vous souhaitez avec plus de contrôle sur la version HiDPI de votre en-tête.

Réglages des CSS

Thème Genesis Sample

Pour une image de 600px par 160px, dans les CSS, j’effectue les réglages suivants. Attention, par défaut, dans mon thème Genesis Sample, le titre et le slogan du site sont masqués.

.header-image .title-area {
    max-width: 600px;
    padding: 0;
}

.header-image .site-title > a {
    background-position: center !important;
    background-size: contain !important;
    float: left;
    min-height: 160px;
    width: 100%;
}

Autre thème WordPress

Dans un autre thème, il s’agit de repérer le CSS qui permet d’afficher l’image de l’entête par défaut.

Autres ajustements CSS

Les réglages qui suivent concernent le même theme Genesis Sample:

Ajuster la hauteur pour les tous les petits écrans

@media only screen and (max-width: 350px) {
    .header-image .site-title > a {
        min-height: 60px;
    }
}

Centrer le logo sur les iPad (Portrait)

@media only screen and (max-width: 1023px) {
    .site-header .title-area {
        margin: 0 auto;
        float: none;
    }
}   

Afficher la description ou le titre du site

.header-image .site-description,
.header-image .site-title {
    display: block;
    text-indent: -9999px;
}

Juste enlever le site-description ou le site-title de la règle.

Résultat final

Image responsive et hidpi dans mon en-tête WordPress

Liens

4 réponses

  1. Bonsoir, comment intégrer une image d’entête et son logo dans TOUTES pages du site alors que je ne peux garder l’image et son logo que dans la fenêtre d’édition svp.
    je vous remercie d’avance de m’aider !
    Cordialement

    1. Bonjour,
      Pour cette partie, cela dépend de chaque thème malheureusement.

  2. Bonjour Grégoire,
    j’ai essayé d’ajouter une photo sur l’en-tête de mon blog en suivant les explications données sur le codage.
    Je vois bien apparaître désormais « en-tête » dans le menu « Apparences », je peux ajouter une photo, mais elle ne s’affiche pas sur mon blog. J’ai sélectionné le thème Comet car j’ai besoin d’avoir un thème à 2 menus / 2 ou 3 colonnes et un header avec une photo personnalisée.
    Est-ce que vous pourriez m’aider?
    Merci d’avance, je suis perdue!
    Anne-Charlotte

    1. Bonjour Anne-Charlotte,
      Il faudrait plutôt voir avec le créateur du thème.