サポート » テーマ » カテゴリ別一覧に表示される記事のサムネイルをカテゴリ別に変える

  • 解決済 tsussy

    (@tsussy)


    初めて投稿します。

    例えばwordpressで作成した定食屋のポータルサイトがあったとして、
    「うどん」・「そば」・「ラーメン」・「カレー」…というカテゴリから記事を選べ、
    記事A定食屋は「うどん」と「そば」のカテゴリに該当し、
    うどんカテゴリ一覧にはA定食屋のうどんのサムネイル画像、
    そばカテゴリ一覧にはA定食屋のそばのサムネイル画像を表示することは可能でしょうか?

    通常1つの記事に1種類のサムネイルで、
    店頭写真でも使っとけばよいのでしょうが…

    よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • <補足>
    カスタム投稿「店舗」
    タクソノミー「料理」
    ターム「うどん」「そば」…

    という具合で作成しました。

    アイデアだけですが…

    • 画像(メディア)にタクソノミー「料理」が付けられるようにする。
    • うどん画像にターム「うどん」、そば画像にターム「そば」を付ける。
    • 店舗の投稿に、うどん/そば両方の画像を貼る(アイキャッチ画像でなくても構わないと思います)。
    • ターム「うどん」のアーカイブテンプレート(taxonomy-ryouri-udon.php)は、投稿に貼られた画像のうちターム「うどん」が付いている画像を取得してサムネイル表示する。
    • ターム「そば」のアーカイブテンプレート(taxonomy-ryouri-soba.php)も同様にする。

    「投稿に貼られた画像のうちターム何々が付いている画像」は get_children で取得できると思います。get_children は get_posts と同じく tax_query 引数が使えるので。

    こんにちは、

    @gblsm さんの提案にあるように、画像に、メタデータを追加して、それらを事前に体系立てて表示を自動化する方法は出来上がると、作業者が何もすることがなくなるのでとても効率的だと思います。

    一方で、最初からそれらの設計ができない。(途中から、いろんなのが発生してくるとか、)という場合もあるかもしれません。

    場当たり的にやっていくような場合は、以下のようなフィルタを用意して置くと、投稿の作成ごとの手間が増えますが、作りは、簡単になります。

    普通の投稿の場合ですが、

    以下の例は、投稿に

    カスタムフィールド

    aciform_post_thumbnail(投稿スラッグ+_post_thumbnail)

    値には、画像URL

    カテゴリの指定は必須(上の例だと、aciform)

    デフォルトの、アイキャッチ画像は必須。

    functions.php に以下を追加

    <?php
    add_filter( 'post_thumbnail_html', 'change_thumbnail_by_category', 10, 5 );
    
    function change_thumbnail_by_category( $html, $post_id, $post_thumbnail_id, $size, $attr ) {
    
    	$cat_id				 = get_query_var( 'cat' );
    	$term				 = get_term( $cat_id, 'category' );
    
    	if ( is_category() && in_the_loop() ) {
    
    		$url = get_post_meta( $post_id, $term->slug. '_post_thumbnail', true );
    
    		if ( !empty($url) ) {
    
    			$url = esc_url( $url );
    
    			return preg_replace( '!src="([^"]+)"!', 'src="' . $url . '"', $html );
    		}
    	}
    	return $html;
    }
    ?>

    in_the_loop()というコンディショナルは、サイドバーなどで利用されるアイキャッチ画像迄変更されることを、抑制する狙いですが、それぞれのテーマで挙動が異なるかもしれないので、適宜変更してください。

    皆様ありがとうございました。
    なんとかやれそうです。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カテゴリ別一覧に表示される記事のサムネイルをカテゴリ別に変える」には新たに返信することはできません。