Wordpress에서 논리적 인 결함이있는 것처럼 보입니다. 그러나 해결책이 필요합니다. 현재 설정을 수정하고 거의 모든 쿼리를 변경하여 하나의 게시물 유형 대신 두 가지 게시물 유형을 포함 시켰습니다.Wordpress is_home() 함수는 다중 우편 유형 쿼리에 대해 false positive를 반환합니다.
내 쿼리가 제대로 작동하지만 is_home()이 내 아카이브 페이지에서 0 대신 1을 반환하기 때문에 많은 기능이 부족합니다. 나는 (블로그 인) 내 '게시물 페이지'가 아닌 다른 아카이브에서 오전 있지만 의 문서에 따르면, 기능은 사실 내 블로그 페이지
* If a static page is set for the front page of the site, this function will return true only
* on the page you set as the "Posts page".
에 일을해야한다, 그것은 true
을 반환 . 해당 아카이브의 쿼리에 하나의 post_type 만 있으면 is_home()
은 0을 반환합니다. 쿼리에 다른 게시물 유형을 추가하면 (is_home()
) true
을 반환합니다.
문제는 Wordpress 코어의 query.php
파일 내에 있습니다. is_home()
은 쿼리 개체 내의 is_archive
이 false
인 경우 true를 반환합니다. 그러나 내 경우에는 is_archive
이 사실이어야합니다 (그렇지 않습니다). is_post_type_archive
이 참이면 is_archive
이 참입니다 (그렇지 않은 경우). is_post_type_archive
에만 워드 프레스 true로
1) post_type 배열이 아닌 경우 설정되고, 검색어가으로부터
2) post_type는 has_archive
가치 개체 :
그리고 그게 문제를 낳는다 곳 true
post_type이 배열이고 따라서 2) 게시물 유형 배열에 대해 하나의 게시 유형 개체가 없으므로 has_archive가 true가 될 수 있기 때문에 두 조건이 모두 적용되지 않습니다.
짧은 이야기 : 다른 post_types의 게시물이있는 아카이브 페이지가 있는데 작동하지만 이러한 항목은 내 블로그 페이지가 아니므로 문서에 따르면 is_home은 여전히 false 여야합니다.
두 가지 질문 : 1) is_home()의 예상되는 동작입니까? 2) 함수를 대체 할 수있는 다른 함수가 있고 다중 포스트 유형 쿼리에서 작동 할 수 있습니까? (그렇지 않다면, 그것을 달성하는 방법에 대한 제안?)
미리 감사드립니다.