Ajax фильтрация постов — как допилить?

Добрый день!

Собираю себе ajax фильтр записей на основе данной статьи

В моем случае список категорий должен выводиться вот так:

В целом получилось, работает..вот код

functions.php

add_action('wp_ajax_myfilter', 'misha_filter_function'); // wp_ajax_{ACTION HERE} 
add_action('wp_ajax_nopriv_myfilter', 'misha_filter_function');

function misha_filter_function(){
	$args = array(
		'orderby' => 'date', // we will sort posts by date
		'order' => $_POST['date'] // ASC or DESC
	);

		if( $terms = get_terms( array( 'taxonomy' => 'category' ) ) ) :
			$all_terms = array();

			foreach( $terms as $term ) {
				if( isset( $_POST['category_' . $term->term_id ] ) && $_POST['category_' . $term->term_id] == 'on' )
					 $all_terms[] = $term->slug;
			}

			if( count( $all_terms ) > 0 ) {
				$args['tax_query'] = array(
					array(
						'taxonomy' => 'category',
						'field' => 'slug',
						'terms'=> $all_terms
					)
				);
			}
		endif;

	// if post thumbnail is set
	if( isset( $_POST['featured_image'] ) && $_POST['featured_image'] == 'on' )
		$args['meta_query'][] = array(
			'key' => '_thumbnail_id',
			'compare' => 'EXISTS'
		);
	// if you want to use multiple checkboxed, just duplicate the above 5 lines for each checkbox

	$query = new WP_Query( $args );

	if( $query->have_posts() ) :
		while( $query->have_posts() ): $query->the_post();
			// echo '<h2>' . $query->post->post_title . '</h2>';
			get_template_part( 'template-parts/content/news-card', get_post_format() );
		endwhile;
		wp_reset_postdata();
	else :
		echo 'No posts found';
	endif;

	die();
}

Код в шаблоне:

<!-- Ajax filters for blog -->
<form action="<?php echo site_url() ?>/wp-admin/admin-ajax.php" method="POST" id="filter">
	<?php
		$cat_services = get_category_by_slug('services');
		$categories_services = get_categories( [
			'taxonomy'     => 'category',
			'type'         => 'post',
			'parent'       => $cat_services->term_id,
			'hide_empty'   => 0,
		] );

		if( $categories_services ){
			foreach( $categories_services as $cat ){
				echo '<p><input type="checkbox" id="category_'. $cat->cat_ID .'" name="category_'. $cat->cat_ID .'" /><label for="category_'. $cat->cat_ID .'">' . $cat->name . '</label></p>';
			}
		}

		$cat_categories = get_category_by_slug('categories');
		$categories_categories = get_categories( [
			'taxonomy'     => 'category',
			'type'         => 'post',
			'parent'       => $cat_categories->term_id,
			'hide_empty'   => 0,
		] );

		if( $categories_categories ){
			foreach( $categories_categories as $cat ){
				echo '<p><input type="checkbox" id="category_'. $cat->cat_ID .'" name="category_'. $cat->cat_ID .'" /><label for="category_'. $cat->cat_ID .'">' . $cat->name . '</label></p>';
			}
		}
	?>
	<label>
		<input type="radio" name="date" value="ASC" /> Date: Ascending
	</label>
	<label>
		<input type="radio" name="date" value="DESC" selected="selected" /> Date: Descending
	</label>
	<label>
		<input type="checkbox" name="featured_image" /> Only posts with featured images
	</label>
	<button>Apply filter</button>
	<input type="hidden" name="action" value="myfilter">
</form>
<div id="response">Last posts</div>

И скрипт jQuery

// Ajax filters for blog
jQuery(function($){
	$('#filter').change(function(){
		var filter = $('#filter');
		$.ajax({
			url:filter.attr('action'),
			data:filter.serialize(), // form data
			type:filter.attr('method'), // POST
			beforeSend:function(xhr){
				filter.find('button').text('Processing...'); // changing the button label
			},
			success:function(data){
				filter.find('button').text('Apply filter'); // changing the button label back
				$('#response').html(data); // insert data
			}
		});
		return false;
	});
});

Вопрос #1 - Когда захожу на страницу блога - постов нет, есть надпись "Last posts"..покликал фильтр - работает, но как только сминаю настройки фильтра на исходную - выводятся все записи сайта, а нужно вернуться к надписи "Last posts" - можно ли так сделать?

Вопрос #2 - Я, выбрав 2-3 фильтра, хочу видеть эти изменения в адрессной строке браузера - то есть, чтоб я мог скопировать ссылку с выбранными параметрами - и она работала..если я перешел в запись, и вернулся назад - то нормально было бы - увидеть выбранные ранее фильтры

Заметки к вопросу:
gordon250 2 года назад

Вопрос 2, если подключать ajax, то в URL ничего не увидишь..