왜 query_posts ()가 더 이상 사용되지 않는 것으로 표시되지 않습니까?
-
-
좋은 질문입니다!왜 당신이 query_posts ()를 사용하지 말아야하는지 모르는 다른 사람들을 위해,[여기] (http://wordpress.stackexchange.com/questions/50761/when-to-use-wp-query-query-posts-and-pre-get-posts) 및 [여기] (http://wordpress.stackexchange.com/questions/1753/when-should-you-use-wp-query-vs-query-posts-vs-get-posts/)에 대한 좋은 입문서 Q & A가 있습니다.That is a great question! For others coming across this who don't know why you shouldn't use query_posts(), [here](http://wordpress.stackexchange.com/questions/50761/when-to-use-wp-query-query-posts-and-pre-get-posts) and [here](http://wordpress.stackexchange.com/questions/1753/when-should-you-use-wp-query-vs-query-posts-vs-get-posts/) are some good primer Q&A's on it.
- 2
- 2016-05-18
- Tim Malone
-
2 대답
- 투표
-
- 2016-05-18
제안하기 위해 새trac 티켓 티켓 # 36874 를 생성했습니다.
query_posts()
의 지원 중단. 수락 여부는 여전히 좋은 질문입니다.query_posts()
의 진짜 큰 문제는 플러그인과 테마에서 여전히 널리 사용되고 있다는 것입니다. 비록 당신이 절대로해야하는 이유에 대한 좋은 글이 있었음에도 불구하고 그것을 사용하십시오. WPSE에 대한 가장 멋진 게시물은 다음과 같습니다.deprecation!==removal ,따라서
query_posts()
를 더 이상 사용하지 않는다고해서 저품질 개발자와 WordPress를 알지 못하고 가난한 사용자를 사용하는 사람들의 사용이 중단되지 않습니다. 지침으로 품질 자습서. 몇 가지 증거처럼,사람들이caller_get_posts
에서WP_Query
를 사용하는 곳에서 여전히 몇 개의 질문이 있습니까? 수년 동안 사용되지 않습니다.사용되지 않는 함수와 인수는 핵심 개발자가 적절하다고 판단 할 때 언제든지 제거 할 수 있지만
query_posts()
에서는 수백만 개의 사이트를 망가 뜨리기 때문에 이러한 일이 발생하지 않을 것입니다. 그렇습니다. 우리는query_posts()
가 완전히 제거되는 것을 결코 보지 못할 것입니다. 이것은 아마도 절대로 사용되지 않을 것이라는 사실로 이어질 수 있습니다.이것이 시작점이지만 WordPress에서 어떤 것을 더 이상 사용하지 않는다고해서 사용이 중단되는 것은 아닙니다.
2016 년 5 월 19 일 업데이트
내가 제기 한 티켓은 이제 닫히고 4 년된 티켓과 중복 된 것으로 표시되었습니다. wontfix 로 닫히고 다시 열렸습니다. 여전히 열려 있고 해결되지 않은 상태입니다.
핵심 개발자들이이 오래되고 충실한 작은 악마에 매달리고있는 것 같습니다. 관심있는 모든 분들,여기에 복제 된 4 년 된 티켓이 있습니다.
I have just created a new trac ticket, ticket #36874, to propose the deprecation of
query_posts()
. Whether or not it will be accepted remains a good question.The real big issue with
query_posts()
is, it is still widely used by plugins and themes, even though there have been really good writings on the subject of why you should NEVER EVER use it. I think the most epic post here on WPSE is the following one:deprecation !== removal, so deprecating
query_posts()
will not stop its usage by poor quality devs and people in general who do not know WordPress and who use poor quality tutorials as guidelines. Just as some proof, how many questions do we still get here where people usecaller_get_posts
inWP_Query
? It has been deprecated for many years now.Deprecated functions and arguments can however be removed at any time the core devs see fit, but this will most probably never happen with
query_posts()
as this will break millions of sites. So yes, we will probably never see the total removal ofquery_posts()
- which might lead to the fact that it will most probably never get deprecated.This is a starting point though, but one has to remember, deprecating something in WordPress does not stop its use.
UPDATE 19 May 2016
The ticket I raised is now closed and marked as duplicate to a 4 year old ticket, which was closed as wontfix and was reopened and still remain open and unresolved.
Seems the core developers are hanging on to this old faithful little evil. Everyone interested, here is the duplicate 4year old ticket
-
https://core.trac.wordpress.org/ticket/36874 티켓을 마감 한 이유는 무엇입니까?이 질문은 티켓 1 : 1과 관련이 있으므로 @PieterGoosen이 티켓 https://core.trac.wordpress.org/ticket/36874에이 스레드에 대한 링크를 포함 할 수 있습니다.Why they closed the ticket https://core.trac.wordpress.org/ticket/36874? Please @PieterGoosen can you include the link to this thread in your ticket https://core.trac.wordpress.org/ticket/36874 since this question relates to the ticket 1:1
- 0
- 2016-05-19
- prosti
-
@prosti이 문제는 이미 제기 되었기 때문에 중복으로 표시된 것 같습니다 ... ** 4 년 전 ** [여기에서 찾았습니다] (https://core.trac.wordpress.org/ticket/19631).@prosti Looks like it was marked as duplicate as this issue has already been brought up... **4 years ago** [found here](https://core.trac.wordpress.org/ticket/19631).
- 0
- 2016-05-19
- Howdy_McGee
-
- 2016-05-19
[다소 폭언]
이 시점에서 진정으로 비난 된 것은 없다는 것이 핵심 철학입니다. Deprecationnotice는 가지고있는 것이 좋지만,함수가 실제로 어떤 지점에서 삭제되지 않는다면 무시 될 것입니다.
WP_DEBUG
를 켠 상태에서 개발하지 않고 실제 파손이 없을 경우 알림을받지 못하는 분들이 많습니다.OTOH 손,이 함수는
goto
문과 같습니다. 개인적으로 나는 (예상보다 작은 정의를 위해) 결코goto
를 사용하지 않았지만 기본적으로 악하지 않은 상황을 가리키는 주장을 이해할 수 있습니다.query_posts
도 마찬가지입니다. 간단한 루프를 만드는 데 필요한 모든 전역을 설정하는 간단한 방법이며 ajax 또는 rest-api 컨텍스트에서 유용 할 수 있습니다. 그런 맥락에서도 절대 사용하지 않겠지 만,코딩 스타일의 문제가되고 함수 자체가 악하다는 것을 알 수 있습니다.좀 더 자세히 살펴보면,주요 문제는 전역을 설정해야한다는 것입니다. 이것이 설정을 돕는 기능이 아니라 주요 문제입니다.
[somewhat rant]
It is the standing core philosophy at this point that nothing is truly deprecated. Deprecation notice, while it is a nice to have, is just going to be ignored if the function will not actually be dropped at some point. There are many people that do not develop with
WP_DEBUG
on and will not notice the notice if there will not be an actual breakage.OTOH hand, this function is like
goto
statement. Personally I never (for smaller definition then expected) usedgoto
but I can understand the arguments pointing to some situation in which it is not evil by default. Same goes withquery_posts
, it is a simple way to set up all the globals required to make a simple loop, and can be useful in ajax or rest-api context. I would never use it in those contexts as well, but I can see that there, it is more of an issue of style of coding then a function being evil by itself.Going a little deeper, the main problem is that globals need to be set at all. That is the main problem not the one function that helps setting them.
-
그리고 비교를 위해 실제로 'query_posts'는 보조 쿼리보다 느립니다 (읽기 : 기본 쿼리가 아님).And for the comparison, is really `query_posts` slower than a secondary query (read: not the main query).
- 0
- 2016-05-19
- prosti
-
@prosti,wp_query를 설정하고 실행하기 때문에 얼마나 느릴 수 있습니까?약간의 오버 헤드가 있지만 여기서는 밀리 초를 이야기 할 것입니다.물론 이것은 WP가 기본적으로 쿼리를 제공하지 않는 곳에서 사용한다고 가정합니다.그것이하는 곳에서는`query_posts` 자체가 아니라 WP가로드 될 때했던 쓸모없는 쿼리가 나쁘다.@prosti, as it just sets and runs a wp_query, how much slower can it be? sure there is some overhead but we probably talking miliseconds here. This of course assumes you use it in places where WP do not provide a query by default. In places where it does it is bad, not the `query_posts`itself but the useless query that was done when WP was loading
- 0
- 2016-05-19
- Mark Kaplun
기술적으로 말하면 두 개의
query_posts()
함수가 있습니다.하나의query_posts()
는 실제로WP_Query::query_posts()
이고 다른 하나는 전역 공간에 있습니다.정상적인 질문 :
글로벌
query_posts()
가 "악"이라면 왜 지원이 중단되지 않습니까?또는 왜
_doing_it_wong
으로 표시되지 않습니다.