Como suprimir um código de status 404 em uma página do WordPress?

13

Eu tenho um site WordPress que inclui páginas extraídas de um banco de dados diferente. O problema é que essas outras páginas retornam um código de status 404. (As postagens / páginas do WordPress estão bem.)

As páginas com 404 páginas são exibidas corretamente e eu removi o texto "Página não encontrada" da tag title no WordPress. Mas o Googlebot e o W3C veem o cabeçalho 404.

Então: uau, alguém diz ao Apache para suprimir um status 404? E o Apache substituirá o cabeçalho 404 do WordPress?

Isso faz sentido? Que outras informações e outras coisas devo observar?

Posso suprimir o código de status em .htaccess para não alterar os arquivos principais do WP?

markratledge
fonte

Respostas:

11

Você pode adicionar reescritas personalizadas às suas páginas. Ou, na parte superior dos arquivos de modelo, que envolvem as outras páginas, basta imprimir header('HTTP/1.1 200 OK');.

Aaron Harun
fonte
2
Correção excelente em vez de usar .htaccess e para corrigir apenas os modelos de página php que não são do WP. Obrigado!
markratledge
Existe uma função interna para isso: status_header (200);
guidod
5

O WordPress oferece a função status_header()de retornar o código de status correto.

Você pode chamar essa função dentro do seu modelo / função do WordPress:

// Will return http status header "200 OK"
status_header(200);
Philipp
fonte
2

Wordpress é PHP, então procure para onde está enviando algo como:

header("HTTP/1.0 404 Not Found");

fonte
Votou acidentalmente em você, mas mudou. Prefiro não alterar os arquivos principais do WP.
markratledge
0

Dê uma olhada no gancho pre_handle_404 (adicionado na v4.5.0): https://developer.wordpress.org/reference/hooks/pre_handle_404/

// add to your functions.php
add_filter('pre_handle_404', function($preempt, $wp_query) {
    global $wp;
    $customPages = ['custom-1','custom-2','custom-3'];

    if (in_array($wp->request, $customPages)) {
      $preempt = true;
    }

    return $preempt;
}, 10, 2);
Jonathan MacDonald
fonte