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);