WEBLOG

カスタム投稿タイプの親カテゴリーごとに子カテゴリーの記事一覧を表示する

カスタム投稿タイプの、親カテゴリーごとに子カテゴリーの記事一覧を表示する

<?php
    $target_post = 'custom1'; // カスタム投稿スラッグ
    $target_post_cat = 'cusntom1_category'; // カスタム投稿のカテゴリー
    $post_count = -1;
    $cat_args = array(
        'parent' => 0, //トップレベルのタームのみ
        'hierarchical' => 0 //子タームを含めない
    );
    $cats = get_terms($target_post_cat, $cat_args);
    foreach( $cats as $cat ):
?>
<?php
    $target_cat_slug = esc_html($cat -> slug);
    $target_cat_name = esc_html($cat -> name);
?>
                    <div class="block area-block" id="<?php echo $target_cat_slug;?>">
                        <div class="cover">
                            <h2 class="heading02"><?php echo $target_cat_name; ?></h2>
<?php $child_cats = get_terms($target_post_cat,'hierarchical=0&hide_empty=1&parent='.$cat -> term_id); ?>
<?php if( $child_cats ) : ?>
<?php foreach( $child_cats as $child_cat ): ?>
<?php
    $child_cat_name = esc_html($child_cat -> name);
    $target_cat_slug = esc_html($child_cat->slug);
?>
                            <div class="pref-part part">
                                <h3 class="heading03"><i class="far fa-dot-circle"></i><?php echo $child_cat_name; ?></h3>
                                <ul>
<?php
    $args = array(
        'post_type' => array($target_post),
        'taxonomy' => $target_post_cat,
        'term' => $target_cat_slug,
        'post_status' => 'publish',
        'posts_per_page' => $post_count, // 表示するページ数
        'orderby' => 'menu_order',
        'order' => 'DESC' // 並び順
    );
    $my_query = new WP_Query($args);
?>
<?php if( $my_query->have_posts() ) : ?>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
                                    <li>
                                        <p class="shopname">
                                            <?php if(get_post_meta( $post->ID, 'url', true )): ?>
                                                <a href="<?php the_field('url');?>" target="_blank" rel="nofollow"><?php the_title();?></a> <i class="far fa-window-restore"></i>
                                            <?php else:?>
                                                <?php the_title();?>
                                            <?php endif; ?>
                                        </p>
                                        <p class="address"><?php the_field('address');?></p>
                                        <?php if( is_pc()|is_tb() ){ ?>
                                        <p class="tel font-designed"><i class="fas fa-phone"></i><?php the_field('tel');?></p>
                                        <?php };?>
                                        <?php if( is_sp() ){ ?>
                                        <a class="tel button btn-small font-designed" href="tel:<?php the_field('tel');?>"><i class="fas fa-phone"></i><?php the_field('tel');?></a></p>
                                        <?php };?>
                                        <?php
                                            $icons = get_field('icons');
                                            if ($icons):
                                        ?>
                                        <div class="icons">
                                            <?php
                                                $cfcb = get_field_object('icons');
                                                $cfcbId = get_post_meta($post->ID,'icons');
                                                $cfcbId = $cfcbId[0];
                                                foreach($cfcbId as $v):
                                            ?>
                                            <a href="#ss-menu" class="scroll-btn"><img src="<?php bloginfo('template_url');?>/images/support/<?php echo $v; ?>.svg" alt="<?php echo $cfcb['choices'][$v];?>"></a>
                                            <?php endforeach;?>
                                        </div>
                                        <?php endif;?>
                                    </li>
<?php endwhile; endif; ?>
                                </ul>
                            </div><!--//pref-part-->
<?php endforeach; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
                        </div><!--// cover-->
                    </div><!--// area-block-->
<?php endforeach; ?>

カテゴリー

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です