web-dev-qa-db-fra.com

Index de la catégorie

Je souhaite définir une image en-tête/en-tête pour chacune des pages d'archives de ma catégorie. Comment procéderais-je sans avoir à coder en dur chaque catégorie dans le thème?

Un exemple de page est à http://keswickscouts.org/section/cubs

La forme de code header.php est

            <div id="main-image">
        <?php
            // Check to see if the header image has been removed
            $header_image = get_header_image();
            if ( ! empty( $header_image ) ) :
        ?>
            <a href="<?php echo esc_url( home_url( '/' ) ); ?>">
                <?php
                    if ( !is_404() && !is_attachment() ) { // Check if this is not 404 or attachment page
                        // Check if this is a post or page, if it has a post-thumbnail
                        if ( is_singular() && has_post_thumbnail( $post->ID ) && ( $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) && $image[1] >= HEADER_IMAGE_WIDTH ) :
                        echo get_the_post_thumbnail( $post->ID, 'post-thumbnail' );
                    else : ?>
                        <img src="<?php header_image(); ?>" height="<?php echo get_custom_header()->height; ?>" width="<?php echo get_custom_header()->width; ?>" alt="" />
                <?php endif; } // end check for featured image or standard header ?>
            </a>
        <?php endif; // end check for removed header image ?>
        </div><!-- end #main-image -->
1
The-Keswickian

Ce que j'ai fait était; en utilisant le plugin Taxonomy Images pour associer une image à chaque catégorie, puis dans le header.php de mon thème, sous la ligne <a> dans le code ci-dessus;

<?php 
            $image_id = apply_filters( 'taxonomy-images-queried-term-image-id', 0 );
            if ( is_category() && ! empty( $image_id )):
             print apply_filters( 'taxonomy-images-queried-term-image', '',  
                array(
                'image_size' => 'header'
            ) );
            else : ?>

Et ajoutez <?php endif; ?> en dessous de la fin de la recherche de fin ... '

et défini la taille de l'image d'en-tête dans functions.php avec

add_image_size( 'header', 960, 260, true );
1
The-Keswickian