Bagaimana cara menekan kode status 404 di halaman WordPress?

13

Saya punya situs WordPress yang mencakup halaman yang diambil dari database yang berbeda. Masalahnya adalah bahwa halaman-halaman lain ini mengembalikan kode status 404. (Posting / halaman WordPress baik-baik saja.)

Halaman 404 itu menampilkan baik-baik saja, dan saya menghapus teks "Halaman tidak ditemukan" dari tag judul di WordPress. Tapi Googlebot dan W3C melihat header 404.

Jadi: wow apakah ada yang memberitahu Apache untuk menekan status 404? Dan apakah Apache akan menimpa header 404 WordPress?

Apakah itu masuk akal? Info dan hal apa lagi yang harus saya perhatikan?

Bisakah saya menekan kode status dalam .htaccess jadi saya tidak mengubah file WP core?

markratledge
sumber

Jawaban:

11

Anda dapat menambahkan penulisan ulang kustom ke halaman Anda. Atau di bagian atas file template yang membungkus halaman Anda yang lain hanya output header('HTTP/1.1 200 OK');.

Aaron Harun
sumber
2
Perbaikan hebat daripada menggunakan .htaccess dan untuk memperbaiki hanya templat halaman php non-WP. Terima kasih!
markratledge
Ada fungsi bawaan untuk ini: status_header (200);
guidod
5

WordPress menawarkan fungsi status_header()untuk mengembalikan kode status yang benar.

Anda dapat memanggil fungsi ini di dalam template / fungsi WordPress Anda:

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

Wordpress adalah PHP, jadi cari di mana ia mengirim sesuatu seperti:

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

sumber
Secara tidak sengaja menurunkan Anda, tetapi mengubahnya. Saya lebih suka tidak mengubah file inti WP.
markratledge
0

Lihatlah kait pre_handle_404 (ditambahkan dalam 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
sumber