이상한 문제가 발생했습니다.
세 개 이상의 수준으로 임의의 URL에 액세스한다고 가정 해보십시오.
http://example.com/a/b/c
http://example.com/a/b/c/d
...
그런 다음 is_404()
입니다 true
. 여태까지는 그런대로 잘됐다. 그러나 어떤 이유로 마지막 게시물이 쿼리됩니다.
$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
그렇다면 물론 have_posts()
돌아 오는 true
것입니다. 누군가 이것을 설명 할 수 있습니까?
내가 지금까지 알아 낸 것 :
WP가 3 개 이상의 레벨에서만 시작하는 이유는 WP가 게시물과 첨부 파일을 찾기 전에 다른 동작을 유발하기 때문입니다.
WP가 요청을 한 시점에서 404로 인식하더라도 가장 최근 게시물을 가져 오는 것으로 보입니다. 의 도움으로 @kaiser 및 @GM I에서 어딘가에이 아래로 추적 한 /wp-includes/class-wp.php:608