web-dev-qa-db-ja.com

カテゴリインデックスデッキ特集画像

カテゴリアーカイブページごとに注目/ヘッダー画像を設定したいのですが、各カテゴリをテーマにハードコーディングせずにこれを実行するにはどうすればよいですか。

このページの例は http://keswickscouts.org/section/cubs にあります。

コード形式はheader.phpです。

            <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

私がしたことは、 Taxonomy Images プラグインを使用して各カテゴリに画像を関連付け、次に上のコードの<a>行の下にある私のテーマのheader.phpに関連付けます。

<?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 : ?>

そしてendifの下に<?php endif; ?>を追加してください。

そして、functions.phpでヘッダ画像のサイズを次のように定義しました。

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