A página 404 é exibida automaticamente se um loop não retornar nada?

Se você tiver um index.php com um loop como:

 if(have_posts()){ while(have_posts()){ the_post(); } } 

E nada é retornado, você geralmente faria um:

 if(have_posts()){ while(have_posts()){ the_post(); } }else{ //display message } 

No entanto, e se você tiver um 404.php ? Essa página será exibida se nada for retornado em termos do loop (assumindo que não escrevi a parte mais do loop)?

Solutions Collecting From Web of "A página 404 é exibida automaticamente se um loop não retornar nada?"

Se você quiser forçar o modelo 404.php para carregar se não houver posts encontrados, use o filtro template_include :

 function wpa84794_template_check( $template ) { global $wp_query; if ( 0 == $wp_query->found_posts ){ $template = locate_template( array( '404.php', $template ), false ); } return $template; } add_filter( 'template_include', 'wpa84794_template_check' ); 

Marque a página Hierarquia do modelo WordPress, em particular o diagrama: http://codex.wordpress.org/Template_Hierarchy#Visual_Overview

Em resumo, a resposta é não, o 404.php é usado somente quando o URL não resolve a nenhum outro tipo de modelo.