✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

WP_Query-Lesbarkeitsverbesserungen (für Wartungszwecke)

6

Die Arbeit mit WP_Query, insbesondere wenn Sie einige benutzerdefinierte Arbeiten außerhalb des üblichen „Einige Beiträge abrufen und in einer Vorlage anzeigen” ausführen, kann leistungsstark sein. Dies gilt insbesondere für einige der erweiterten Argumente (z. B. die Verwendung von WP_Meta_Query ). .

Es ist auch nett, dass das Einrichten des Prozesses eine Standardmethode hat. Nämlich:

  1. Definieren Sie die Argumente,
  2. WP_Query instanziieren,
  3. Überprüfen Sie, ob es Beiträge gibt,
  4. Schleife sie durch,
  5. Beende sie.

Aber wenn Sie an den Punkt kommen, an dem Sie fortgeschrittene Arbeiten ausführen, z. B. mit einem benutzerdefinierten Beitragstyp aus einer Drittanbieterlösung arbeiten, Medien von der Seite laden müssen, feststellen müssen, ob etwas vorhanden ist, bevor Sie tatsächlich damit arbeiten, dann kann es eine sein etwas komplizierter zu handhaben, oder?

Ich habe festgestellt, dass, wie bei allem in der Programmierung, die Aufteilung in viel besser lesbare Module (oder Funktionen oder Teile oder wie auch immer Sie sie nennen möchten) die Arbeit damit viel einfacher machen kann.

Hier ist also ein Weg, wie ich daran arbeite, die Lesbarkeit von WP_Query in einer Vielzahl von Dingen zu verbessern, die ich in letzter Zeit gemacht habe.

Verbesserungen der Lesbarkeit von WP_Query

Bevor wir ein Beispiel durchgehen, ist es wichtig, darauf hinzuweisen, dass es einige Dinge gibt, die wir aufgrund der Art und Weise, wie WP_Query eingerichtet ist, nicht tun können.

Sobald die Abfrage beispielsweise instanziiert ist, können wir möglicherweise nicht mehr viel weiter fortgeschrittene Dinge damit tun (ich meine, das Einrichten von Einheitentests, die keinen WordPress-Kern erfordern, wird unmöglich sein).

Das ist das Gesicht von jemandem, der Ihrem Kodex nicht folgen kann.

Vor diesem Hintergrund ist hier ein Beispiel dafür, wie es aussehen kann, wenn Sie anfangen, und wie es dann umgestaltet werden kann, um kleinere Funktionen zu haben, von denen jede beabsichtigter ist als eine lange Methode.

Ein Beispiel

Angenommen, ich muss für diesen Beitrag die Datenbank nach allen veröffentlichten Beiträgen und Beiträgen abfragen und ich möchte sie nach ID sortieren.

Als Nächstes möchte ich feststellen, ob einem Tool eines Drittanbieters einige Metadaten zugewiesen wurden, die einer Vorlage entsprechen, die ich später programmatisch zuweisen kann, wenn ich ein Design habe.

Vielleicht sieht die ursprüngliche Version des Codes in etwa so aus :

Das ist eine Menge Code, um ziemlich viel Arbeit für eine Funktion zu erledigen. Zumindest legt es alles fest, was passieren muss, nicht wahr?

Bevor Sie weiterlesen, beachten Sie, dass das Zuordnungs-Array nur ein Beispiel ist, aber die Schlüssel den Metaschlüssel für  die Zuordnung darstellen, und das hilft uns, die Definition des  Werts _wp_page_template zuzuordnen, wenn es an der Zeit ist, ihn den tatsächlichen WordPress-Vorlagendateien zuzuordnen.

Wie kann man das also aufschlüsseln?

1 Kicken Sie das Ganze ab

Als erstes wollen wir eine Funktion erstellen, die das Ganze in Bewegung setzt. Es gibt einige Möglichkeiten, wie Sie dies tun können.

Hier ist, wie ich mich entschieden habe , es zu tun :

Einfach ausgedrückt, es wird ein paar Hilfsfunktionen verwenden – die ich alle unten dokumentieren werde – und dann alle Vorlagen zuweisen, die wir im oben definierten Mapping-Array haben.

2 Beiträge und Seiten laden

Als Erstes möchten wir natürlich eine aufzurufende Funktion einrichten, die die Ergebnisse der Abfrage verwendet:

Dies gibt die Ergebnisse der Abfrage zurück. Auf diese Weise können wir feststellen, ob wir zusätzliche Arbeiten ausführen müssen, die wir im vorherigen Schritt im Wesentlichen sagen:

Wenn nicht, dann sind wir fertig. Ansonsten machen wir natürlich weiter.

3 Rufen Sie die Drittanbieter-Vorlagen-ID ab

Als nächstes scheint die Idee, Vorlagen zuzuweisen – wie im obigen Code gezeigt – einfach genug, aber es gibt ein paar Dinge, die wir zuerst tun müssen:

  1. durch die Beiträge iterieren,
  2. holen Sie sich die Drittanbieter-ID der Vorlage,
  3. holen Sie sich den Namen der Drittanbietervorlage,
  4. Weisen Sie die Vorlage aus der zuvor in der Klasse definierten Mapping-Konstante zu.

Die erste Iteration der Funktion kann wie folgt aussehen :

Aber wie Sie sehen können, gibt es immer noch Hilfsfunktionen, die Definitionen benötigen. Dinge wie die Möglichkeit, die Vorlagen-ID und den Vorlagennamen abzurufen und die Vorlage schließlich zuzuweisen.

Beachten Sie jedoch, dass wir mit der Schleife fortfahren, wenn eine der Hilfsfunktionen keinen nützlichen Wert zurückgibt. Dies ist schon aus keinem anderen Grund notwendig, als sicherzustellen, dass wir nicht versuchen, Vorlagen zuzuordnen, die nicht existieren (aber ich finde, es macht es auch ein bisschen leichter zu lesen).

4 Suchen Sie die Datei, der die Vorlagen-ID zugeordnet ist

Als Nächstes kann eine kleine Funktion verwendet werden, um sich die Vorlagen-ID des Drittanbieters anzusehen und festzustellen, ob wir diesen Wert den Seiten zuordnen können, die in unserer Datenbank vorhanden sind .

Wenn dies nicht möglich ist, können wir einen leeren String zurückgeben und dann die Funktion, die diese bestimmte Funktion aufgerufen hat, prüfen lassen, ob es sich lohnt, mit der von uns definierten Schleife fortzufahren.

5 Holen Sie sich den Vorlagennamen

Angenommen, wir haben eine gültige Beitrags-ID, müssen wir jetzt den Vorlagennamen aus dem zuvor im Beitrag definierten Zuordnungs-Array abrufen:

Hier ist die Sache: Wir werden entweder den Namen der Vorlage zurückgeben, oder wir werden einen Nullwert zurückgeben. Auch hier können wir feststellen, ob wir mit der Schleife zum Zuweisen von Vorlagen fortfahren müssen oder nicht.

6 Weisen Sie die Vorlage zu

Schließlich können wir die vom Drittanbieter bereitgestellte ID der Vorlage abrufen und diese verwenden, um sie der Datei zuzuordnen, die wir in unsere Arbeit aufgenommen haben, wie zuvor im Beitrag beschrieben:

Und auf diese Weise können Sie letztendlich viel kleineren, leichter lesbaren und einfacher zu verwendenden Code und Funktionen erstellen, wenn Sie mit etwas komplizierteren Abfragen arbeiten.

Und damit Verbesserungen der Lesbarkeit

Für diejenigen, die daran gewöhnt sind, lange Methoden zu schreiben oder Dinge so zu tun, wie viele Tutorials im Web zeigen, wie man Dinge in WordPress macht, kann dies wie eine Menge sinnloser Code aussehen.

Aber bedenke Folgendes:

  1. Längere Methoden sind schwerer zu lesen,
  2. Sie können schwieriger zu debuggen sein,
  3. Und sie zerlegen das Problem nicht in überschaubarere Teile.

Sicher, ich würde dies gerne in noch mehr Klassen mit ihren Verantwortlichkeiten aufteilen, und ich glaube, dass dies möglich ist, aber angesichts der Natur von WP_Query würde es ein wenig mehr Arbeit erfordern.

Also habe ich versucht, so viel Mittelweg wie möglich zu finden.

Wenn Sie mit noch etwas fortgeschritteneren Verwendungen von WP_Query arbeiten, empfehle ich, zumindest darüber nachzudenken, es in kleinere Teile zu zerlegen.

Dies trägt dazu bei, die Lesbarkeit und möglicherweise die Wartbarkeit zu gewährleisten und saubereren Code zu schreiben, anstatt eine lange Methode mit zu vielen Bedingungen und der Abhängigkeit von einer Vielzahl anderer Daten.

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen