it-swarm.com.de

Warum wird query_posts () nicht als veraltet markiert?

Technisch gesehen gibt es zwei query_posts()-Funktionen. Eine query_posts() ist eigentlich WP_Query::query_posts() und die andere befindet sich im globalen Raum.

Fragen aus der Vernunft:

Wenn global query_posts() das "Böse" ist, warum wird es nicht abgelehnt?

Oder warum nicht als _doing_it_wong markiert.

14
prosti

Ich habe soeben ein neues Trac-Ticket erstellt, Ticket # 36874 , um die Ablehnung von query_posts() vorzuschlagen. Ob es akzeptiert wird oder nicht, bleibt eine gute Frage.

Das wirklich große Problem bei query_posts() ist, dass es von Plugins und Themes immer noch weit verbreitet ist, obwohl es wirklich gute Schriften zum Thema gibt, warum Sie es NIEMALS verwenden sollten. Ich denke, der epischste Beitrag hier auf WPSE ist der folgende:

deprecation! == removal, so dass query_posts() nicht aufhört, von Entwicklern mit schlechter Qualität und Leuten im Allgemeinen, die WordPress nicht kennen und Tutorials mit schlechter Qualität als Richtlinien verwenden, verwendet zu werden. Wie viele Fragen haben wir hier noch, wo die Leute caller_get_posts in WP_Query verwenden? Es ist seit vielen Jahren veraltet.

Veraltete Funktionen und Argumente können jedoch jederzeit entfernt werden, wenn die Kernentwickler dies für richtig halten. Dies wird jedoch höchstwahrscheinlich niemals mit query_posts() geschehen, da dies Millionen von Websites zum Erliegen bringt. Also ja, wir werden wahrscheinlich nie die vollständige Beseitigung von query_posts() sehen - was dazu führen könnte, dass es höchstwahrscheinlich niemals veraltet wird.

Dies ist zwar ein Ausgangspunkt, aber man muss bedenken, dass das Abwerten von WordPress-Inhalten die Verwendung nicht einschränkt.

UPDATE 19. Mai 2016

Das Ticket, das ich ausgelöst habe, ist jetzt geschlossen und als Duplikat für ein4 Jahre altTicket markiert, das als wontfix geschlossen wurde und erneut geöffnet wurde und weiterhin offen und ungelöst bleibt .

Die Kernentwickler scheinen an diesem alten treuen kleinen Übel festzuhalten. Alle Interessierten, hier ist das Duplikat des 4 Jahre alten Tickets

10
Pieter Goosen

[etwas schimpfen]

Es ist an dieser Stelle die ständige Kernphilosophie, dass nichts wirklich veraltet ist. Obwohl es eine nette Nachricht ist, wird sie einfach ignoriert, wenn die Funktion nicht tatsächlich irgendwann gelöscht wird. Es gibt viele Leute, die sich nicht mit WP_DEBUG entwickeln und die Benachrichtigung nicht bemerken, wenn es keinen tatsächlichen Bruch gibt.

OTOH Hand, diese Funktion ist wie goto Anweisung. Persönlich habe ich nie (für eine kleinere Definition als erwartet) goto verwendet, aber ich kann die Argumente verstehen, die auf eine Situation hinweisen, in der es standardmäßig nicht böse ist. Das Gleiche gilt für query_posts. Es ist eine einfache Möglichkeit, alle für die Erstellung einer einfachen Schleife erforderlichen Globals einzurichten. Dies kann im Ajax- oder Rest-API-Kontext hilfreich sein. Ich würde es niemals auch in solchen Kontexten verwenden, aber ich kann sehen, dass es sich eher um eine Frage des Codierungsstils als um eine Funktion handelt, die von sich aus böse ist.

Das Hauptproblem besteht darin, dass überhaupt Globals festgelegt werden müssen. Das ist das Hauptproblem, nicht die einzige Funktion, die beim Einstellen hilft.

3
Mark Kaplun