web-dev-qa-db-fra.com

Comment utiliser un logo dans l'en-tête?

J'essaie de créer un nouveau site en utilisant le thème Hemingway. Je veux ajouter un logo à l'en-tête. L'éditeur de thème me demande d'utiliser le panneau d'administration pour télécharger le logo. Il y a deux problèmes avec ceci. Tout d’abord, cette méthode est vouée à l’échec, car bien entendu, WordPress n’a pas d’accès en écriture au système de fichiers et je ne suis pas sur le point de lui accorder un tel accès. Deuxièmement, la manière habituelle de publier de telles choses sur un site Web consiste à télécharger les fichiers pertinents sur le serveur à l'emplacement approprié et à les associer. Mais où va le logo?

Dans mon thème, le logo est placé à l'aide du code suivant:

<?php if ( get_theme_mod( 'hemingway_logo' ) ) : ?>

<div class='blog-logo'>

  <a href='<?php echo esc_url( home_url( '/' ) ); ?>' title='<?php echo esc_attr( get_bloginfo( 'title' ) ); ?> &mdash; <?php echo esc_attr( get_bloginfo( 'description' ) ); ?>' rel='home'>
  <img src='<?php echo esc_url( get_theme_mod( 'hemingway_logo' ) ); ?>' alt='<?php echo esc_attr( get_bloginfo( 'title' ) ); ?>'>
</a>
</div> <!-- /blog-logo -->

La façon dont je le vois, j'ai deux options:

  1. Modifiez le code et codez mon logo ici. Le problème ici est que plus je modifie le code, plus je peux m'attendre à des problèmes de maintenabilité.
  2. Déterminez où ce code attend un logo. Il semble que la fonction get_theme_mod soit la clé, mais quand j’ai cherché sa définition, il s’est avéré qu’il y avait beaucoup de confusion à suivre (et je n’ai jamais entendu parler d’un débogueur interactif pour PHP).

Parmi ces options, je pense que le numéro 2 est tout à fait préférable, mais je ne comprends pas suffisamment le code pour le faire.

Que recommandes-tu?

1
Scott Severance

Je suggérerais alors fortement de créer un thème enfant . C'est vraiment rapide (prend moins de 5 minutes) et vos personnalisations ne sont pas perdues lorsque vous mettez à jour votre thème. Il vous suffit de copier 'header.php' dans votre thème enfant pour le modifier. Créez également un dossier appelé "images". C'est ici que votre logo personnalisé apparaîtra. Ligne 24

<div class="header section" style="background-image: url(<?php if (get_header_image() != '') : ?><?php header_image(); ?><?php else : ?><?php echo get_template_directory_uri() . '/images/header.jpg'; ?><?php endif; ?>);">

est l'endroit où l'image est appelée, il vous suffit donc de le modifier. N'oubliez pas de changer

get_template_directory_uri() . '/images/header.jpg

à

get_stylesheet_directory_uri() . '/images/your-image.jpg

J'espère que cette aide.

1
Pieter Goosen