Saya menemukan masalah aneh.
Katakanlah Anda mengakses url acak, tiga level atau lebih dalam:
http://example.com/a/b/c
http://example.com/a/b/c/d
...
Lalu is_404()
adalah true
. Sejauh ini baik. Tetapi untuk beberapa alasan posting terakhir dipertanyakan.
$wp_query->request
adalah
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1
AND wp_posts.post_type = 'post'
AND (
wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private'
)
ORDER BY wp_posts.post_date DESC
LIMIT 0, 5
Yang kemudian tentu saja membuat have_posts()
kembali true
dan seterusnya. Adakah yang bisa menjelaskan hal ini?
Apa yang saya temukan sejauh ini:
Alasan yang hanya menendang tiga tingkat atau lebih dalam adalah bahwa sebelum WP mencari posting dan lampiran yang entah bagaimana menghasilkan beberapa perilaku lain.
Tampaknya meskipun WP mengakui permintaan tersebut sebagai 404 pada satu titik, tetapi kemudian mengambil pos terbaru. Dengan bantuan dari @kaiser dan @GM saya telah melacaknya sampai di suatu tempat dari /wp-includes/class-wp.php:608