Custom Layouts – 카테고리, 태그 아카이브 쿼리

별도의 택소노미 용어 정의 없이 자동으로 해당 카테고리와 태그 글이 나오게 합니다. Custom Layouts을 카테고리나 태그의 아키이브 템플릿에 사용할 때 유용합니다.
<?php 

add_filter('custom-layouts/layout/query_args', function( $query_args, $layout_id){
       if( is_archive() && empty( $query_args['tax_query'] ) ){
              $taxonomy_query = array();
              $term = get_queried_object();
              if( is_category() ){
                     $taxonomy_query['category'] = array('include' => array($term->slug));
              }
              if( is_tag() ){
                     $taxonomy_query['post_tag'] = array('include' => array($term->slug));
              }
              if ( is_array( $taxonomy_query ) ) {
                     $to_tax_query = array( 'relation' => 'AND' );
                     foreach ( $taxonomy_query as $tax_name => $tax_query ) {
                            if ( is_array( $tax_query['include'] ) && ! empty ( $tax_query['include'] ) ) {
                                   $sep_tax_query = array( 'relation' => 'AND' );
                                   foreach ( $tax_query['include'] as $tax_slug ) {
                                          $include = array(
                                                 'taxonomy' => $tax_name,
                                                 'field'    => 'slug',
                                                 'terms'    => array( $tax_slug ),
                                                 'operator' => 'IN',
                                          );
                                          array_push( $sep_tax_query, $include );
                                   }
                                   array_push( $to_tax_query, $sep_tax_query );
                            }
                     }
                     $query_args['tax_query'] = $to_tax_query;
              }
       }
       return $query_args;
}, 10, 2);