Conditional tag search-no-results

Is there a way to make a conditional tag that tests if it is search-no-results page?

I know that there is a function to check if is_search() page:

if(is_search()){
    echo "search page";
}

But I didn't found a way to check for search-no-results, and I noticed that WordPress gives body class with search-no-results to this page.

Topic conditional-tags Wordpress search

Category Web


Why not use code like this in your search.php template :

if ( have_posts() ) {

    return default search results query

} else {

    Your custom query

}

There is no conditional tag for no results on a search page, but you can create yourself one.

You basically just have to check the value of $wp_query->found_posts, if it is 0, returns false, any other value, returns true

function is_search_has_results() {
    return 0 != $GLOBALS['wp_query']->found_posts;
}

Actually it should be like this.

function is_search_has_results() {
  if ( is_search()) {
    global $wp_query;
    $result = ( 0 != $wp_query->found_posts ) ? true : false;
    return $result;
  }
}

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.