Como disparar 404 para consulta personalizada var?

2

Como você pode acionar um 404 ao usar consultas personalizadas? Eu tenho re-escrever regras escritas para uma consulta personalizada var, mas se você solicitar uma URL para a consulta var que deveria ser tecnicamente um 404, ela retornará uma página WP normal, mas nenhum conteúdo, porque nada existe tecnicamente para o URL.

    
por hsatterwhite 26.03.2011 / 18:15

2 respostas

8

Existe uma ação específica para isso:

function my_parse_query( $wp_query ) {
    if ( $wp_query->get( 'my_custom_var' ) > 42 ) {
        $wp_query->set_404();
        status_header( 404 );
    }
}
add_action( 'parse_query', 'my_parse_query' );

Isso deve carregar o template 404.php no seu tema, se você o tiver. Caso contrário, voltará a index.php.

Isso também acionará um código de status HTTP 404.

Para mais informações, consulte parse_query .

    
por scribu 26.03.2011 / 18:56
1

Adicione um 404.php ao seu tema e veja se ele é chamado.

Exemplo 404.php

<!doctype>
<title>404</title>
<p>404 – Mwah!</p>

O que é mais importante: os cabeçalhos HTTP reais, aqui o código de status. Você pode vê-lo com as ferramentas do desenvolvedor do seu navegador em rede . Aqui está uma captura de tela para http://wordpress.stackexchange.com/404 no Opera Dragonfly:

Ver em tamanho grande

Se você ainda tiver um código de status 200, procure nas variáveis globais $wp e $wp_query . Eles lhe dirão mais detalhes sobre o recurso buscado.

    
por fuxia 26.03.2011 / 18:29