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