Por que Query_Posts () não está marcado como depreciado?
-
-
Essa é uma ótimapergunta!Para os outros que se deparam comisso quenão sabempor que vocênão deve usar Query_Posts (),[aqui] (http://wordpress.stackexchange.com/Questions/50761/when-to-s-wp-quer-Posts-and-Pré-Get-Get-Posts)e [aqui] (http://wordpress.stackexchange.com/Questions/1753/when-Should-you-us-wp-Query-vs-query-posts-vs-get-posts/) são algunsbonsprimer Q & A sobreele.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 respostas
- votos
-
- 2016-05-18
Acabei de criar umnovoticket Trac,ticket # 36874 ,parapropor A depreciação de
query_posts ()
. Seja ounão aceito continua a ser umaboapergunta.Ograndeproblema com
Query_posts ()
é,ainda é amplamente utilizadoporpluginse temas,emboratenha havido realmenteboasescritos sobre o assunto depor que você deve nunca usá-lo. Eu acho que opostmais épico aquino WPSE é o seguinte:Deprecation!==Remoção ,portanto,querer
Query_posts ()
não vaiparar o uso de devs demá qualidadee pessoasem geral quenão conhecem WordPresse quem usapobre Tutoriais de qualidade como diretrizes. Apenas como algumaprova,quantasperguntas ainda chegamos aqui onde aspessoas usamCaller_Get_Posts em wp_query
? Foi depreciadopormuitos anos agora.Asfunçõese argumentos obsoletospodem,noentanto,ser removidos a qualquermomento,o Core Devs verá o ajuste,masissoprovavelmentenunca acontecerá com
Query_Posts ()
comoisso vai quebrarmilhões de sites. Então,nósprovavelmentenunca veremos a remoçãototal deQuery_Posts () - o quepode levar aofato de queprovavelmentenunca será descontado. Este é umponto departida,mas épreciso lembrar,depreciando algono WordPressnãopara o uso.
Update 19 demaio de 2016
Obilhete que levantou agoraestáfechadoe marcado como duplicadopara um 4 anos bilhete,quefoifechado como wontfix e foi reabertoe aindapermanecem abertose não resolvidos.
Parece que os desenvolvedoresprincipaisestãopenduradosparaeste velhomalvadomalvado. Todos osinteressados,aquiestá obilhete velho duplicado de 4 anos
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
-
Por queelesfecharam oingresso https://core.trac.wordpress.org/ticket/36874?Porfavor @pietergoosen Vocêpodeincluir o linkparaestetópicono seuticket https://core.trac.wordpress.org/ticket/36874 Desde queesta questão se relaciona com o Bilhete 1: 1Why 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
-
@prostiparece quefoimarcado como duplicado comoesta questãojáfoitrazida ... ** 4 anos atrás ** [encontrado aqui] (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
[umpouco rant]
É afilosofia denúcleoem pénestemomento quenada é verdadeiramente obsoleto. Aviso de depreciação,enquanto é umbomter,só vai serignorado se afunçãonão será realmente descartadaem algummomento. Hámuitaspessoas quenão desenvolvem com
WP_DEBUG
e nãonotarão o aviso senão houver uma quebra real.Otoh Hand,estafunção é como
goto
. Pessoalmenteeununca (para definiçãomenor,em seguida,esperado) usadogoto
maseupossoentender os argumentos apontandopara alguma situaçãoem quenão émalporpadrão. Omesmo acontece comquery_posts
,é umamaneira simples de configurartodos osglobaisnecessáriosparafazer um loop simplese pode ser útilno contexto AJAX ou REST-API. Eununca o usarianesses contextostambém,masposso ver que lá,émais uma questão deestilo de codificação,então umafunção sendomal sozinha.Indo umpoucomaisfundo,oprincipalproblema é que osglobaisprecisam ser definidos. Esse é oprincipalproblema,não afunção que ajuda a colocá-las.
[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.
-
Epara a comparação,é realmente "Query_posts"mais lento que uma consulta secundária (leia:não a consultaprincipal).And for the comparison, is really `query_posts` slower than a secondary query (read: not the main query).
- 0
- 2016-05-19
- prosti
-
@prosti,pois apenas definee executa um wp_query,quantomais lentopode ser?Claro que há alguma sobrecarga,masprovavelmentefalandomiliseconds aqui.Isso,claro,assume que você usá-loem locais onde o WPnãofornece uma consultaporpadrão.Em lugares onde é ruim,não o `Query_posts`itselfmas a consultainútil quefoifeito quando o WPestava carregando@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
Existem dois
Query_posts ()
funçõestecnicamentefalando.UmQuery_Posts ()
é,na verdade,WP_Query :: Query_posts ()
e o outroestánoespaçoglobal.perguntandopela sanidade:
Seglobal
query_posts ()
é que "mal"por quenãoestá depreciado?oupor quenão émarcado como
_doing_it_wong
.