diff --git a/archive.php b/archive.php index 9babd18..8712de3 100644 --- a/archive.php +++ b/archive.php @@ -10,11 +10,14 @@ $is_itstudio_content_page = $is_itstudio_news_page || $is_itstudio_notice_page; true, + 'column' => 'post_date', + ); + if ($date_from_valid !== '') { + $range['after'] = $date_from_valid; + } + if ($date_to_valid !== '') { + $range['before'] = $date_to_valid; + } + $date_query[] = $range; +} + +if ($tag_slug !== '') { + $resolved_tag = get_term_by('slug', $tag_slug, 'post_tag'); + if (!($resolved_tag instanceof WP_Term)) { + $tag_slug = ''; + } +} + +$available_tags = get_terms(array( + 'taxonomy' => 'post_tag', + 'hide_empty' => true, + 'orderby' => 'name', + 'order' => 'ASC', +)); +if (is_wp_error($available_tags)) { + $available_tags = array(); +} + +$list_query_args = array( 'post_type' => $active_post_type, 'post_status' => 'publish', 'posts_per_page' => 10, 'paged' => $paged, - 's' => $keyword, 'ignore_sticky_posts' => true, 'orderby' => 'date', 'order' => 'DESC', -)); + 'suppress_filters' => false, +); +if ($keyword !== '') { + $list_query_args['itstudio_archive_extend_search'] = true; + $list_query_args['itstudio_archive_keyword'] = $keyword; +} +if (!empty($date_query)) { + $list_query_args['date_query'] = $date_query; +} +if ($tag_slug !== '') { + $list_query_args['tax_query'] = array( + array( + 'taxonomy' => 'post_tag', + 'field' => 'slug', + 'terms' => array($tag_slug), + ), + ); +} + +$list_query = new WP_Query($list_query_args); $featured_query = new WP_Query(array( 'post_type' => $active_post_type, @@ -75,23 +136,59 @@ $featured_ids = array_slice(array_values(array_unique($featured_ids)), 0, 4);
-