Try to not using endif
and endwhile
, just use curly brakets {}
to determinate ifs body or add
:after else
else:`
Your problem is that you mix two syntaxes.
Read this to fully understand how to write alternative syntax
https://www.php.net/manual/en/control-structures.alternative-syntax.php
add_action('wp_ajax_data_fetch' , 'data_fetch');
add_action('wp_ajax_nopriv_data_fetch', 'data_fetch');
function data_fetch() {
$post_search_query = new WP_Query(array('posts_per_page' => -1, 's' => esc_attr($_POST['search_keyword']), 'post_type' => 'post'));
if ($post_search_query->have_posts()){
while ($post_search_query->have_posts()){ $post_search_query->the_post(); ?>
<h5><a href="<?php echo esc_url( post_permalink() ); ?>"><?php the_title();?></a></h5>
<span class="live-search-post-excerpt"><?php the_excerpt(); ?></span>
<?php } //end while
wp_reset_postdata();
} //end if
else {
echo 'No results found';
} // end else
die();
}