web-dev-qa-db-fra.com

Comment remplacer l'en-tête vingt-image par ma bannière flash?

Je construis actuellement un site utilisant un thème enfant pour la première fois.

Fondamentalement, j'ai une bannière flash que le client a déjà créée et je souhaite remplacer la bannière d’images vingt par le flash. Je sais comment faire cela en éditant le header.php (je pense!), Mais je me demandais s'il existait un meilleur moyen de le faire - en utilisant function.php dans mon thème enfant peut-être?

Ce serait bien si le client pouvait mettre à jour le thème eux-mêmes sans se soucier de la modification de l'en-tête.

Merci pour vos contributions.

1
slugmandrew

Un thème pour enfants est certainement la voie à suivre pour la raison que vous avez décrite: la évolutivité. Pour commencer, voici la documentation pour la création de thèmes enfants: http://codex.wordpress.org/Child_Themes

Vous voudrez créer le répertoire du thème enfant et modifier le fichier style.css comme décrit dans le lien ci-dessus sur la documentation du thème enfant. Après cela, copiez simplement le fichier header.php du répertoire twentyten dans le répertoire et modifiez-le pour inclure l'élément Flash que vous avez. En copiant le header.php dans un thème enfant, il remplacera la version du thème parent et sera conservé après une mise à jour du thème parent.

C'est le bloc que vous voulez éditer, car il crée l'image d'en-tête:

<?php
// Check if this is a post or page, if it has a thumbnail, and if it's a big one
if ( is_singular() && current_theme_supports( 'post-thumbnails' ) &&
        has_post_thumbnail( $post->ID ) &&
        ( /* $src, $width, $height */ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) &&
        $image[1] >= HEADER_IMAGE_WIDTH ) :
    // Houston, we have a new header image!
    echo get_the_post_thumbnail( $post->ID );
elseif ( get_header_image() ) : ?>
    <img src="<?php header_image(); ?>" width="<?php echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>" alt="" />
<?php endif; ?>

Je voudrais simplement supprimer tout le bloc PHP et le remplacer par le code <object> de votre élément flash. Vous voudrez cependant vous assurer que l'élément flash a une largeur exacte de 940 pixels, sinon cela pourrait sembler étrange ou casser le design.

Le bloc image d'en-tête PHP est situé à la ligne 68 de mon header.php (dans le thème WordPress 3.1 vingtten), et se trouve juste en dessous de ce qui suit:

<div id="site-description"><?php bloginfo( 'description' ); ?></div>

Notez que ce n'est pas infaillible. Si le thème twentyten est mis à jour dans le futur et contient les modifications que vous souhaitez apporter au thème enfant, elles n'apparaîtront pas ici. Cependant, pour ajouter un crochet qui remplace l'en-tête de l'image par un Flash, il faudrait modifier le header.php ... du thème de base ... un peu comme un attrapé 22. En pratique, cela ne devrait toutefois pas poser trop de problèmes. C'est aussi le meilleur moyen dans WordPress de gérer ce genre de chose.

Pour référence, , voici les modifications apportées au fichier sur sa page Trac .

0
Gavin Anderegg