Me deparei com uma questão estranha.
Digamos que você acesse um URL aleatório, com três ou mais níveis de profundidade:
http://example.com/a/b/c
http://example.com/a/b/c/d
...
Então is_404()
é true
. Por enquanto, tudo bem. Mas, por algum motivo, as últimas postagens são consultadas.
$wp_query->request
é
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
O que, é claro, faz have_posts()
retorno true
e assim por diante. Alguém pode explicar isso?
O que eu descobri até agora:
A razão pela qual apenas entra em ação em três ou mais níveis é que, antes disso, o WP procura por postagens e anexos que de alguma forma resultam em algum outro comportamento.
Parece que, embora o WP reconheça a solicitação como 404 em um ponto, ele busca as postagens mais recentes. Com a ajuda do @kaiser e do @GM , localizei isso em algum lugar de /wp-includes/class-wp.php:608