アーカイブページにて特定カテゴリーの記事のみ一覧表示について

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #34059
    courier
    参加者

    トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。

    【お使いの Snow Monkey のバージョン】Version: 7.13.2
    【お使いのブラウザ】chrome
    【当該サイトのURL】http://e-courier.jp/highcube/gallery

    ===

    お世話になっております。

    でアーカイブページで特定カテゴリー一覧を表示するにはどうすればよいのかわからず困っております。

    プラグインCustom Post Type UIを使用し、カスタム投稿で作成しています。

    カテゴリーはCustom Post Type UIのタクソノミーにて作成しました。

    現在は区分けなく一覧で表示されていますが、1ページ内でカテゴリーごとに下記のようなデザインに仕上げたいです。

     

    お手数ですが、ご教授お願いいたします。

     

    #34093
    キタジマ タカシ
    キーマスター

    Snow Monkey Blocks に、「任意のタクソノミーの投稿」というブロックがあります。これで任意のカスタムタクソノミーを選択したブロックを何個か置くのが一番簡単かなと思います。問題点としては、「gallery アーカイブページを固定ページ化する必要がある」「全件表示はできない(タクソノミーごとに最新の○件が表示される)」という点です。

    もしくは、もう gallery アーカイブページのテンプレートをつくっちゃうかですね。子テーマをお使いのようですので、まず下記のファイル(gallery アーカイブページのコンテンツ部分)を子テーマにつくってください。

    子テーマ/template-parts/archive/entry/content/content-gallery.php

    で、ちょっと長いですが、こんな感じでしょうか。

    <?php
    use Framework\Helper;
    
    $post_type_object = get_post_type_object( get_post_type() );
    $taxonomies       = isset( $post_type_object->taxonomies ) ? $post_type_object->taxonomies : [];
    $entries_layout   = get_theme_mod( get_post_type() . '-entries-layout' );
    ?>
    
    <div class="c-entry__content p-entry-content">
    	<?php foreach ( $taxonomies as $taxonomy ) : ?>
    		<?php
    		$terms = get_terms( [ 'taxonomy' => $taxonomy ] );
    		?>
    		<?php foreach ( $terms as $term ) : ?>
    			<h3><?php echo esc_html( $term->name ); ?></h3>
    			<div class="p-archive">
    				<?php
    				$posts = get_posts(
    					[
    						'post_type'      => get_post_type(),
    						'posts_per_page' => -1,
    						'tax_query'      => [
    							[
    								'taxonomy' => $term->taxonomy,
    								'field'    => 'slug',
    								'terms'    => [ $term->slug ],
    							]
    						],
    					]
    				);
    				?>
    				<ul class="c-entries c-entries--<?php echo esc_attr( $entries_layout ); ?>">
    					<?php foreach ( $posts as $post ) : setup_postdata( $post ); ?>
    						<?php the_post(); ?>
    						<li class="c-entries__item">
    							<?php
    							Helper::get_template_part(
    								'template-parts/loop/entry-summary',
    								get_post_type(),
    								[
    									'_entries_layout' => $entries_layout,
    								]
    							);
    							?>
    						</li>
    					<?php endforeach; wp_reset_postdata(); ?>
    				</ul>
    			</div>
    		<?php endforeach; ?>
    	<?php endforeach; ?>
    </div>
2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。