Title: Query posts by custom date field using archive.php
Last modified: August 22, 2016

---

# Query posts by custom date field using archive.php

 *  Resolved [gran3](https://wordpress.org/support/users/gran3/)
 * (@gran3)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/)
 * Dear all,
 * I am working on a very simple and straight forward event website. I use the normal
   posts to create ‘events’ and use the Advanced Custom Field plugin to add two 
   date fields, one start_date (where the event begins) one end_date (the date the
   event ends) in case the event is only one day long, I use only the end_date field.
 * The home page should filter all the upcoming posts for the current month (this
   would be a custom loop in the index using the current date), and has a simple
   select dropdown menu to select a day, month and year, and a ‘Go’ button
 * My assumption would be that if the archive.php file can do this trough changing
   the url like,
    website.com/2014 (all the posts written in 2014) website.com/2014/
   11 (all the posts written in november of 2014) website.com/2014/11/26 (all the
   posts written on the 26th of November 2014)
 * I could have these urls show the posts using the end_date custom field instead
   of the post publish date with the addition of showing the posts on days between
   the start_date and end_date.
 * [@robbiegod](https://wordpress.org/support/users/robbiegod/) has posted a very
   similar question [here](https://wordpress.org/support/topic/query-custom-post-types-by-two-custom-date-fields).
   
   His question is more focused on getting the multiple day events span all the 
   archive pages (not just the day the event ends but all in between), which is 
   something I would like to integrate as well. But how to generally set this up
   is unclear to me.
 * My current archive.php file
 *     ```
       <?php add_filter( 'get_meta_sql', 'get_meta_sql_date', 10, 2 );
   
       $args = array(
       	'post_type' => 'post',
       	'posts_per_page' => 10,
       	'meta_key' => 'end_date',
       	'orderby' => 'meta_value_num',
       	'order' => 'ASC',
       	'meta_query' => array(
           'relation' => 'AND',
               array(
                   'key'       => 'start_date',
                   'compare'   => '>=',
                   'value'     => $start_date,
                   'type'      => 'DATE'
               ),
               array(
                   'key'       => 'end_date',
                   'compare'   => '<=',
                   'value'     => $end_date,
                   'type'      => 'DATE'
               )
           ),
       );
   
       $posts = new WP_Query( $args );
   
       remove_filter( 'get_meta_sql', 'get_meta_sql_date', 10, 2 );
   
       if( $posts->have_posts() ) :  while ( $posts->have_posts() ) : $posts->the_post(); ?>
       ```
   
 * and the function that goes with it from [@keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 *     ```
       // sortable posts by custom date field for long period events
       function get_meta_sql_date( $pieces, $queries ) {
           global $wpdb;
   
           // get start and end date from query
           foreach ( $queries as $q ) {
   
               if ( !isset( $q['key'] ) ) {
                   return $pieces;
               }
   
               if ( 'start_date' === $q['key'] ) {
                   $start_date = isset( $q['value'] ) ?  $q['value'] : '';
               }
               if ( 'end_date' === $q['key'] ) {
                   $end_date = isset( $q['value'] ) ?  $q['value'] : '';
               }
           }
   
           if ( ( '' === $start_date ) || ( '' === $end_date ) ) {
               return $pieces;
           }
   
           $query = "";
   
           // after start date AND before end date
           $_query = " AND (
               ( $wpdb->postmeta.meta_key = 'start_date' AND ( CAST($wpdb->postmeta.meta_value AS DATE) >= %s) )
               AND ( mt1.meta_key = 'end_date' AND ( CAST(mt1.meta_value AS DATE) <= %s) )
           )";
           $query .= $wpdb->prepare( $_query, $start_date, $end_date );
   
           // OR before start date AND after end end date
           $_query = " OR (
               ( $wpdb->postmeta.meta_key = 'start_date' AND ( CAST($wpdb->postmeta.meta_value AS DATE) <= %s) )
               AND ( mt1.meta_key = 'end_date' AND ( CAST(mt1.meta_value AS DATE) >= %s) )
           )";
           $query .= $wpdb->prepare( $_query, $start_date, $end_date );
   
           // OR before start date AND (before end date AND end date after start date)
           $_query = " OR (
               ( $wpdb->postmeta.meta_key = 'start_date' AND ( CAST($wpdb->postmeta.meta_value AS DATE) <= %s) )
               AND ( mt1.meta_key = 'end_date'
                   AND ( CAST(mt1.meta_value AS DATE) <= %s )
                   AND ( CAST(mt1.meta_value AS DATE) >= %s )
               )
           )";
           $query .= $wpdb->prepare( $_query, $start_date, $end_date, $start_date );
   
           // OR after end date AND (after start date AND start date before end date) )
           $_query = "OR (
               ( mt1.meta_key = 'end_date' AND ( CAST(mt1.meta_value AS DATE) >= %s ) )
               AND ( $wpdb->postmeta.meta_key = 'start_date'
                   AND ( CAST($wpdb->postmeta.meta_value AS DATE) >= %s )
                   AND ( CAST($wpdb->postmeta.meta_value AS DATE) <= %s )
               )
           )";
           $query .= $wpdb->prepare( $_query, $end_date, $start_date, $end_date );
   
           $pieces['where'] = $query;
   
           return $pieces;
       }
       ```
   
 * Anny point in the right direction would be very much appreciated.
    You can find
   my test site [here](http://dev2.modem.ws).

Viewing 15 replies - 1 through 15 (of 23 total)

1 [2](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/page/2/?output_format=md)
[→](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/page/2/?output_format=md)

 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524276)
 * Hi gran3
 * You can get the start and end date of a date archive page with this:
 *     ```
       // check if we're on a date archive
       if ( is_date() ) {
   
       	//check what type of date archive we are on and if query vars are available
       	$m = ( get_query_var( 'm' ) ) ? get_query_var( 'm' ) : false;
   
       	$year = ( get_query_var( 'year' ) ) ? get_query_var( 'year' ) : false;
       	$month = ( get_query_var( 'monthnum' ) ) ? zeroise( get_query_var( 'monthnum' ), 2 ) : false;
       	$day = ( get_query_var( 'day' ) ) ? get_query_var( 'day' ) : false;
   
       	if ( $m ) {
       		// Custom permalinks structure is not enabled
       		switch ( strlen( $m ) ) {
       		case 4: // Yearly
       			$year = substr( $m, 0, 4 );
       			break;
       		case 6: // Monthly
       			$year = substr( $m, 0, 4 );
       			$month = substr( $m, 4, 2 );
       			break;
       		case 8: // Daily
       			$year = substr( $m, 0, 4 );
       			$month = substr( $m, 4, 2 );
       			$day = substr( $m, 6, 2 );
       			break;
       		}
       	}
   
       	if ( is_year() && $year ) {
       		$start_date = $year . '0101';
       		$end_date   = $year . '1231';
       	}
   
       	if ( is_month() && $year && $month ) {
       		$start_date =  $year . $month . '01';
       		$end_date   =  date( 'Ymt', mktime( 23, 59, 59, $month, 1, $year ) ); // 't' gets the last day
       	}
   
       	if ( is_day() && $year && $month && $day ) {
       		$start_date =  $year . $month . $day;
       		$end_date   =  $start;
       	}
   
       	// your post query here
       }
       ```
   
 * It’s not clear if you want to query without the start date though.
 *  Thread Starter [gran3](https://wordpress.org/support/users/gran3/)
 * (@gran3)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524302)
 * Hey Keesiemeijer,
 * Thanks a lot for your fast response.
 * I have a start_date and an end_date, so some events can span multiple months.
   In case an event only takes one day, I only use the end_date
 * I have added the code above the one I had in archive.php, which now looks like
   this
 *     ```
       <?php
       // check if we're on a date archive
       if ( is_date() ) {
   
       	//check what type of date archive we are on and if query vars are available
       	$m = ( get_query_var( 'm' ) ) ? get_query_var( 'm' ) : false;
   
       	$year = ( get_query_var( 'year' ) ) ? get_query_var( 'year' ) : false;
       	$month = ( get_query_var( 'monthnum' ) ) ? zeroise( get_query_var( 'monthnum' ), 2 ) : false;
       	$day = ( get_query_var( 'day' ) ) ? get_query_var( 'day' ) : false;
   
       	if ( $m ) {
       		// Custom permalinks structure is not enabled
       		switch ( strlen( $m ) ) {
       		case 4: // Yearly
       			$year = substr( $m, 0, 4 );
       			break;
       		case 6: // Monthly
       			$year = substr( $m, 0, 4 );
       			$month = substr( $m, 4, 2 );
       			break;
       		case 8: // Daily
       			$year = substr( $m, 0, 4 );
       			$month = substr( $m, 4, 2 );
       			$day = substr( $m, 6, 2 );
       			break;
       		}
       	}
   
       	if ( is_year() && $year ) {
       		$start_date = $year . '0101';
       		$end_date   = $year . '1231';
       	}
   
       	if ( is_month() && $year && $month ) {
       		$start_date =  $year . $month . '01';
       		$end_date   =  date( 'Ymt', mktime( 23, 59, 59, $month, 1, $year ) ); // 't' gets the last day
       	}
   
       	if ( is_day() && $year && $month && $day ) {
       		$start_date =  $year . $month . $day;
       		$end_date   =  $start;
       	}
   
       	// your query here
   
       	$args = array(
       		'post_type' => 'post',
       		'posts_per_page' => 10,
       		'meta_key' => 'end_date',
       		'orderby' => 'meta_value_num',
       		'order' => 'ASC',
       		'meta_query' => array(
       	    'relation' => 'AND',
       	        array(
       	            'key'       => 'event_start_date',
       	            'compare'   => '>=',
       	            'value'     => $start_date,
       	            'type'      => 'DATE'
       	        ),
       	        array(
       	            'key'       => 'event_end_date',
       	            'compare'   => '<=',
       	            'value'     => $end_date,
       	            'type'      => 'DATE'
       	        )
       	    ),
       	);
   
       	$posts = new WP_Query( $args );
   
       	if( $posts->have_posts() ) :  while ( $posts->have_posts() ) : $posts->the_post(); ?>
       ```
   
 * But when I go to [dev2.modem.ws/2014](http://dev2.modem.ws/2014) I only get three
   posts, and when I go to [dev2.modem.ws/2014/11](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/dev2.modem.ws/2014/11?output_format=md)
   I only get one. The select menu there doesn’t work yet, the urls still need to
   be changed.
 * Would it make more sense to make a custom archive page? or is archive.php the
   correct place to be in order to change which posts gets filtered out.
 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524329)
 * Also try it without these arguments:
 *     ```
       'meta_key' => 'end_date',
       'orderby' => 'meta_value_num',
       'order' => 'ASC',
       ```
   
 * And make sure the meta key is ‘event_start_date’.
 * You can create an archive template (date.php) just for date archives:
    [http://codex.wordpress.org/Template_Hierarchy#Date_display](http://codex.wordpress.org/Template_Hierarchy#Date_display)
 * Have you tried it with an event plugin:
    [https://wordpress.org/plugins/search.php?q=event](https://wordpress.org/plugins/search.php?q=event)
 * I myself would try with this one first:
    [https://wordpress.org/plugins/event-organiser/](https://wordpress.org/plugins/event-organiser/)
 * Maybe using a plugin will be easier.
 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524331)
 * My bad, the meta key names must be ‘start_date’ and ‘end_date’ to work with the
   get_meta_sql_date() function.
 * Still try it without these arguments:
 *     ```
       'meta_key' => 'end_date',
       'orderby' => 'meta_value_num',
       'order' => 'ASC',
       ```
   
 *  Thread Starter [gran3](https://wordpress.org/support/users/gran3/)
 * (@gran3)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524337)
 * Thanks a lot, I think its getting somewhere
 * the archive /2014 now shows the correct posts also the archive /2014/11 shows
   all the posts that happen in november, even if the end date is in 2015. So that
   is all very good.
 * Only when I add a day and go to 2014/11/25 it gets the 404 page instead of the
   days archive, it even skips the date.php’s else statement. This also happens 
   with any other archive page, only /2014 and /2014/11 seem to work.
 * Perhaps this has something to do with the fact that all the posts where written
   in november 2014?
 * I have changed all the code to use ‘event_start_date’ and ‘event_end_date’ as
   meta key.
 * I have already looked at many event plugins but they all see very bloated, the
   only thing I’d like to do is filter out the posts by a custom field date with
   a simple select box and have a url for each archive.
 * The function is still the same, only the date.php now has
 *     ```
       <?php
       // check if we're on a date archive
       if ( is_date() ) {
   
       	//check what type of date archive we are on and if query vars are available
       	$m = ( get_query_var( 'm' ) ) ? get_query_var( 'm' ) : false;
   
       	$year = ( get_query_var( 'year' ) ) ? get_query_var( 'year' ) : false;
       	$month = ( get_query_var( 'monthnum' ) ) ? zeroise( get_query_var( 'monthnum' ), 2 ) : false;
       	$day = ( get_query_var( 'day' ) ) ? get_query_var( 'day' ) : false;
   
       	if ( $m ) {
       		// Custom permalinks structure is not enabled
       		switch ( strlen( $m ) ) {
       		case 4: // Yearly
       			$year = substr( $m, 0, 4 );
       			break;
       		case 6: // Monthly
       			$year = substr( $m, 0, 4 );
       			$month = substr( $m, 4, 2 );
       			break;
       		case 8: // Daily
       			$year = substr( $m, 0, 4 );
       			$month = substr( $m, 4, 2 );
       			$day = substr( $m, 6, 2 );
       			break;
       		}
       	}
   
       	if ( is_year() && $year ) {
       		$start_date = $year . '0101';
       		$end_date   = $year . '1231';
       	}
   
       	if ( is_month() && $year && $month ) {
       		$start_date =  $year . $month . '01';
       		$end_date   =  date( 'Ymt', mktime( 23, 59, 59, $month, 1, $year ) ); // 't' gets the last day
       	}
   
       	if ( is_day() && $year && $month && $day ) {
       		$start_date =  $year . $month . $day;
       		$end_date   =  $start;
       	}
   
       	// your query here
   
       	add_filter( 'get_meta_sql', 'get_meta_sql_date', 10, 2 );
   
       	$args = array(
       		'post_type' => 'post',
       		'posts_per_page' => 10,
       		'meta_query' => array(
       	    'relation' => 'AND',
       	        array(
       	            'key'       => 'event_start_date',
       	            'compare'   => '>=',
       	            'value'     => $start_date,
       	            'type'      => 'DATE'
       	        ),
       	        array(
       	            'key'       => 'event_end_date',
       	            'compare'   => '<=',
       	            'value'     => $end_date,
       	            'type'      => 'DATE'
       	        )
       	    ),
       	);
   
       	$posts = new WP_Query( $args );
   
       	remove_filter( 'get_meta_sql', 'get_meta_sql_date', 10, 2 );
   
       	if( $posts->have_posts() ) :  while ( $posts->have_posts() ) : $posts->the_post(); ?>
       ```
   
 * If there is any way of Paying for your time spent I’d be happy to 😉
 * I see you’re Dutch, I’m Belgian 🙂 but lets keep it in English so others could
   use this thread to.
 * Thanks!
 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524365)
 * I love Belgium 🙂 Lived in Antwerp for ten years.
 * The get_meta_sql_date() function needs posts to have both start and end date 
   meta keys for the query to work.
 * I will see what changes need to be made for it to work.
 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524408)
 * This in your (child) theme’s functions.php file will query for the event meta
   in date archives: [http://pastebin.com/E2ka2xrH](http://pastebin.com/E2ka2xrH)
 * With this code you don’t need the `new WP_Query()` anymore. Remove it from your
   date archive template and just use a [regular loop](http://codex.wordpress.org/The_Loop).
   Also remove the start and end date code from the date archive template.
 * You have to give posts both event_start_date and event_end_date custom fields,
   even for single day events. If you only give it the event_end_date the code will
   automatically add the event_start_date meta when you publish or edit a post.
 * I still would recommend a plugin for this, as it gets more and more complex as
   soon as you want more functionality.
 * btw:
    consider creating a [child theme](http://codex.wordpress.org/Child_Themes)
   instead of editing your theme directly – if you upgrade the theme all your modifications
   will be lost. Or [create a plugin](https://wordpress.org/plugins/pluginception/)
   with the code above.
 * Note: For those wo are interested, this only works for the post type ‘post’ as
   custom post types don’t support date archives. For custom post types you’ll need
   to add the date rewrite rules yourself.
 *  Thread Starter [gran3](https://wordpress.org/support/users/gran3/)
 * (@gran3)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524474)
 * Hey Keesiemeijer,
 * Thanks a lot! Works like a charm, with some tiny problems. The archives show 
   duplicate posts, these are all of the revisions and autosaves a posts has had.
   I run it with a plugin called ‘Optimize Database after Deleting Revisions’ which
   deletes all autosaves and revisions from the data base. Once the website moves
   over to its final location I will disable this though wp-config (I know this 
   is not recommended but there seems to be no other way), unless there is something
   I could change on your code? (I’ve placed that into a plugin)
 * Also the order doesn’t seem to be working correctly,
 * `$query->set( 'order', 'ASC' );`
 * Also some of the Day archives redirect to the 404 page, even tough an event is
   there. ex [http://dev2.modem.ws/nl/2015/1/9](http://dev2.modem.ws/nl/2015/1/9)
   While without the day (9) it works.
    Im having a look at it now and I’ll post
   if I find something.
 * ps: Im from Antwerp as well 😉 But live in Berlin for the past 4 years now.
    
   pss: Ive started following you on twitter with @modem_studio, Ill send u a dm
   couse Id like to donate you something for you effort 🙂
 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524475)
 * Hi gran3
 * It should not show revisions or autosaves. Strange
 * Replace the code with this in your theme’s functions.php file:
    [http://pastebin.com/64U2h45q](http://pastebin.com/64U2h45q)
 *  Thread Starter [gran3](https://wordpress.org/support/users/gran3/)
 * (@gran3)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524478)
 * Its indeed strange, also the translation doesn’t seem to always work, it works
   fine, until I update a post, then somehow it shows both languages on the archive.
   The fact that the dates are a bit mixed up has most likely also something to 
   do with it. But its still does show posts from the correct date.
 * it seems that the simple idea of replacing the standard post date with a custom
   date field (and its functionality) isn’t so easy.
 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524479)
 * > it seems that the simple idea of replacing the standard post date with a custom
   > date field (and its functionality) isn’t so easy.
 * No it isn’t 🙂
 * How are you doing translations? With a plugin?
 * Does this date now show the correct posts?
    [http://dev2.modem.ws/nl/2015/1/9](http://dev2.modem.ws/nl/2015/1/9)
 *  Thread Starter [gran3](https://wordpress.org/support/users/gran3/)
 * (@gran3)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524480)
 * Im using Polylang for the translation. That link shouldn’t be showing ‘voetbal
   FR’ only ‘Voetbal’ They are properly linked together. On the main page I use 
   a wp_query and it works correct.
 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524481)
 * Do you now how Polylang queries for posts? Or the current language?
 *  Thread Starter [gran3](https://wordpress.org/support/users/gran3/)
 * (@gran3)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524482)
 * Once basically creates a post in each language which are linked together, this
   also means that all the custom fields are saved within each post, those you can
   however have autofilled so they always match. The query does contain a new query
   var ‘lang’ to allow the content to be filtered by language.
 * [Here](http://polylang.wordpress.com/2014/06/12/dont-override-query-vars-with-query_posts-arguments/)
   is some info about it from the plugin author –
 *  Moderator [keesiemeijer](https://wordpress.org/support/users/keesiemeijer/)
 * (@keesiemeijer)
 * [11 years, 6 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/#post-5524483)
 * Try and change this:
 *     ```
       $query->set( 'post_type', $this->post_type );
       $query->set( 'posts_per_page', get_option( 'posts_per_page' ) );
   
       $query->set( 'meta_key', 'event_start_date' );
       $query->set( 'orderby', 'meta_value_num' );
       $query->set( 'order', 'ASC' );
       ```
   
 * to this
 *     ```
       $query->set( 'post_type', $this->post_type );
       $query->set( 'posts_per_page', get_option( 'posts_per_page' ) );
   
       $query->set( 'meta_key', 'event_start_date' );
       $query->set( 'orderby', 'meta_value_num' );
       $query->set( 'order', 'ASC' );
   
       $locale = get_locale();
   
       if('en_US' === $locale) {
       	$query->set( 'lang', 'en' );
       }
   
       if('nl_NL' === $locale) {
       	$query->set( 'lang', 'nl' );
       }
       ```
   

Viewing 15 replies - 1 through 15 (of 23 total)

1 [2](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/page/2/?output_format=md)
[→](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/page/2/?output_format=md)

The topic ‘Query posts by custom date field using archive.php’ is closed to new 
replies.

## Tags

 * [custom fields](https://wordpress.org/support/topic-tag/custom-fields/)
 * [date](https://wordpress.org/support/topic-tag/date/)
 * [event](https://wordpress.org/support/topic-tag/event/)
 * [query](https://wordpress.org/support/topic-tag/query/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 23 replies
 * 3 participants
 * Last reply from: [Pete](https://wordpress.org/support/users/perthmetro/)
 * Last activity: [11 years, 2 months ago](https://wordpress.org/support/topic/query-posts-by-custom-date-field-using-archivephp/page/2/#post-5524569)
 * Status: resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
