Perché query_posts () non è contrassegnato come deprecato?
-
-
Questa è un'ottima domanda!Pergli altri che siimbattonoin questo chenon sannoperchénon dovresti usare query_posts (),[qui] (http://wordpress.stackexchange.com/questions/50761/when-to-use-wp-query-query-posts-and-pre-get-posts)e [qui] (http://wordpress.stackexchange.com/questions/1753/when-should-you-use-wp-query-vs-query-posts-vs-get-posts/) sono alcunebuone domandee risposte su diesso.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 risposta
- voti
-
- 2016-05-18
Ho appena creato unnuovotickettrac,ticket # 36874 ,daproporre la deprecazione di
query_posts()
. Se sarà accettato omeno rimane unabuona domanda.Il verogrossoproblema con
query_posts()
è che è ancora ampiamente utilizzato daplugine temi,anche se ci sono stati scritti davverobuoni sull'argomento delperchénon dovresti MAI MAI MAI usalo. Penso cheilpostpiùepico qui su WPSE siail seguente:deprecazione!==rimozione ,quindi deprecare
query_posts()
noninterromperàil suo utilizzo daparte di sviluppatori di scarsa qualitàe personein generale chenon conoscono WordPresse che usano scarsatutorial di qualità come lineeguida. Comeprova,quante domande riceviamo ancora qui dove lepersone usanocaller_get_posts
inWP_Query
? Ormai è obsoleto damolti anni.Lefunzionie gli argomenti deprecatipossonotuttaviaessere rimossiin qualsiasimomentogli sviluppatoriprincipali ritengano opportuno,mamoltoprobabilmente questonon accadràmai con
query_posts()
poiché danneggeràmilioni di siti. Quindi sì,probabilmentenon vedremomai la rimozionetotale diquery_posts()
,il chepotrebbeportare alfatto chemoltoprobabilmentenon saràmai deprecato.Questo è unpunto dipartenza,mabisogna ricordare che deprecare qualcosain WordPressnonne impedisce l'utilizzo.
AGGIORNAMENTO 19maggio 2016
Ilticket che hogenerato è ora chiusoe contrassegnato come duplicato di unticket di 4 anni ,che è stato chiusoper wontfix ed è stato riapertoe rimangono ancora apertie irrisolti.
Sembra chegli sviluppatoriprincipali siano aggrappati a questo vecchiofedelepiccolomale. Tuttigliinteressati,eccoilbiglietto duplicato di 4 anni
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
-
Perché hanno chiusoilticket https://core.trac.wordpress.org/ticket/36874?Perfavore @PieterGoosenpuoiincludereil link a questothreadneltuoticket https://core.trac.wordpress.org/ticket/36874poiché questa domanda si riferisce alticket 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
-
@prosti Sembra che sia stato contrassegnato come duplicatopoiché questoproblema ègià stato sollevato ... ** 4 annifa ** [trovato qui] (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
[in qualchemodoinveente]
A questopunto,lafilosofia dibase è chenulla è veramente deprecato. L'avviso di deprecazione,sebbene siabello da avere,verrà semplicementeignorato se lafunzionenon verràeffettivamente abbandonata a un certopunto. Ci sonomoltepersone chenon sviluppano con
WP_DEBUG
attivatoe nonnoteranno l'avviso senon ci sarà una rotturaeffettiva.OTOH hand,questafunzione è come l'istruzione
goto
. Personalmentenon homai (per una definizionepiùpiccola delprevisto) usatogoto
maposso capiregli argomenti chepuntano a qualche situazionein cuinon èmale di default. Lo stesso valeperquery_posts
,è unmodo sempliceperimpostaretutte le variabiliglobali richiesteper creare un semplice cicloe puòessere utilenel contesto ajax o rest-api. Non lo usereimai anchein quei contesti,maposso vedere che lì èpiù una questione di stile di codifica che unafunzionemalvagia diper sé.Andando unpo 'piùin profondità,ilproblemaprincipale è che leglobali devonoessereimpostate. Questo èilproblemaprincipale,non l'unicafunzione che aiuta aimpostarli.
[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.
-
Eperil confronto,è davvero `query_posts`più lento di una query secondaria (leggi:non la queryprincipale).And for the comparison, is really `query_posts` slower than a secondary query (read: not the main query).
- 0
- 2016-05-19
- prosti
-
@prosti,poichéimpostaedesegue solo una wp_query,quantopuòesserepiù lento?certo c'è unpo 'di overheadmaprobabilmente stiamoparlando dimillisecondi qui.Questo ovviamentepresuppone chetu lo usiin luoghiin cui WPnonfornisce una queryperimpostazionepredefinita.Neipuntiin cui lofa è unmale,nonil `query_posts` stessoma la queryinutile che è statafatta duranteil caricamento di 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
Ci sono duefunzioni
query_posts()
tecnicamenteparlando.Unquery_posts()
èin realtàWP_Query::query_posts()
e l'altro ènello spazioglobale.Chiedere alla sanitàmentale:
Se
query_posts()
globale è quel "male",perchénon è deprecato?Operchénon è contrassegnato come
_doing_it_wong
.