The loop_no_results WordPress action is triggered when no results are found in a post query.
Usage
add_action('loop_no_results', 'my_custom_function'); function my_custom_function($query) { // your custom code here }
Parameters
$query
(WP_Query): The WP_Query instance.
More information
See WordPress Developer Resources: loop_no_results
Examples
Display a custom message when no posts are found
This example will display a custom message when there are no posts found in the query.
add_action('loop_no_results', 'display_no_posts_message'); function display_no_posts_message($query) { echo '**Sorry, we could not find any posts.**'; }
Redirect to a custom page when no posts are found
This example will redirect the user to a custom page when there are no posts found in the query.
add_action('loop_no_results', 'redirect_to_custom_page'); function redirect_to_custom_page($query) { wp_redirect(home_url('/custom-page/')); exit; }
Load a custom template for no results
This example will load a custom template when there are no posts found in the query.
add_action('loop_no_results', 'load_no_results_template'); function load_no_results_template($query) { get_template_part('template-parts/content', 'no-results'); }
Add a custom CSS class to the body when no posts are found
This example will add a custom CSS class to the body element when there are no posts found in the query.
add_action('loop_no_results', 'add_custom_body_class'); function add_custom_body_class($query) { add_filter('body_class', function($classes) { $classes[] = 'no-results'; return $classes; }); }
Log when no results are found
This example will log a message when there are no posts found in the query.
add_action('loop_no_results', 'log_no_results'); function log_no_results($query) { error_log('No results found for the query.'); }