サポート » その他 » foreachループ内にある一部の記述がわかりません

  • 解決済 tetto

    (@tetto1122)


    以下はカスタム投稿一覧ページ(archive-menu.php)を教材をもとに作成しているコードです。

    <?php get_header();?>
        
        <h2 class="pageTitle">メニュー<span>MENU</span></h2>
        <?php get_template_part('template_parts/breadcrumb');?>
    
        <?php
        $kinds= get_terms(array('taxonomy'=>'kind'));
        if(!empty($kinds)):/*もし$kindsが空じゃなければ*/
        ?>
            <div class="pageNav">
                <ul><!--リスト表示-->
                    <?php foreach($kinds as $kind):/*foreachで配列を回す*/?>
                        <li>
                            <a href="<?php echo get_term_link($kind);//指定したページのURLをタクソノミー名から取得?>"><?php echo $kind->name;//カスタムタクソノミーの値の名前?></a>
                        </li>
                    <?php endforeach;?>
                </ul>
            </div>
        <?php endif;?>
    
        <main class="main">
            <?php
            $kinds=get_terms(array('taxonomy'=>'kind'));
            if(!empty($kinds)):
            ?>
            <?php foreach($kinds as $kind)://ループ?>
            <section class="sec">
                <div class="container">
                    <div class="sec_header">
                        <h2 class="title title-jp"><?php echo $kind->name;?></h2>
                        <span class="title title-en"><?php echo strtoupper($kind->slug);?></span>
                    </div>
    
                    <div class="row justify-content-center">
                    <?php
                    $args=array(
                        'post_type'=>'menu',//投稿タイプ 'menu'
                        'posts_per_page'=> -1,//すべての投稿を取得するため−1にしている
                    );
                   
                    $taxquerysp = array('relation'=>'AND');
                    
                    $taxquerysp[] = array(
                        'taxonomy'=>'kind',
                        'terms'=>$kind->slug,
                        'field'=>'slug',
                    );
                    $args['tax_query'] = $taxquerysp;
                    
                    $the_query=new WP_Query($args);
    
                    if($the_query->have_posts()):?>
                        <?php while($the_query->have_posts()):$the_query->the_post();//wordpressループ?>  
                        <div class="col-md-3">
    
                            <?php get_template_part('template_parts/loop','menu');?>
    
                            <!--<section class="menu"> この部分をloop-menu.phpにする。
                                <a href="#">
                                    <figure class="menu_pic">
                                        <img src="./assets/img/menu/menu-1@2x.jpg" alt="">
                                    </figure>
                                    <h3 class="menu_title">メニュー名が入ります</h3>
                                    <p class="menu_price">800円
    
                                    <div class="menu_desc">
                                        
                                            概要が入ります。概要が入ります。概要が入ります。概要が入ります。
                                        
    
                                    </div>
                                </a>
                            </section>-->
                        </div>
                        <?php endwhile;?>
                    <?php endif;?>
                    </div>
                </div>
            </section>
            <?php endforeach;?>
            <?php endif;?>
        </main>
        
    <?php get_footer();?>

    このコードのforeachループ内$args['tax_query'] = $taxquerysp;が何を意味しているのかわかりません。配列名$taxqueryspの内容を’tax_query’に入れて、配列名$argsに内容を追加しているのでしょうか。質問の仕方がわからず、わかりずらい説明で申し訳ありませんが、よろしくおねがいします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    配列名$taxqueryspの内容を’tax_query’に入れて、配列名$argsに内容を追加しているのでしょうか。

    解釈の通りだと思います…
    tax_query は、タクソノミー検索条件(配列)の配列をパラメータにします。つまり配列の配列です。

    参考ページ:
    関数リファレンス/WP Query – WordPress Codex 日本語版

    トピック投稿者 tetto

    (@tetto1122)

    いまいち理解できてるか自信が無かったのでスッキリしました。ありがとうございます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「foreachループ内にある一部の記述がわかりません」には新たに返信することはできません。