質問: new WP_Query( $args ); ?> ここには上の // 新着記事の条件 'orderby' => 'date', を // コメント数の条件 'orderby' => 'comment_count', にしただけで他が同じソースコードを書く? ``` さらにソースコードの最後にあるように、``だけでなく``なども追加する予定なのですが、そうなるとその都度➀➁➂の条件を書かないといけないのか?と思っておりまして、どうしたものかと途方に暮れています。 この辺りをなんとかスッキリとさせるためにはどのようなコードがベストでしょうか?
回答: 配列に値を追加していきゃいいんじゃないでしょうか ``` $refine_arr=explode(',',$_COOKIE['refine']); $args=[]; if(新着順の条件){$args['orderby']='date';} elseif(コメント数順の条件){$args['orderby']='comment_count';} if(in_array('マイタグ', $refine_arr,true)){ $args['tax_query']=[ ['taxonomy' => 'tag','field'=>'slug','terms'=>explode(',',$mytag)] ]; } if(in_array('執筆者', $refine_arr,true)){ $args['author']=$author; } $the_query = new WP_Query( $args ); ``` ついでに`preg_match('/マイタグ,執筆者/',$refine)`という判定条件は危うく感じます ここはたとえ値の順番が入れ替わっても引っかかるようにしたいはずですし 将来的に条件が増えて間に別の値が入ってきたとしても同じく引っかかるようにしたいはずです