webentwicklung-frage-antwort-db.com.de

Erklärung der Filter-Hooks "posts_join" und "posts_fields"?

Ich bin neu in den "posts_" -Filter-Hooks und wollte ein paar Dinge von denen wissen, die es wissen:

In dieser Frage hat jemand eine Antwort mit posts_join gepostet, für die ein zweiter Parameter von $query verwendet wurde:

add_filter('posts_join',array(&$this,'posts_join'),10,2);

...

function posts_join($join,$query) {

}

Ist dies eine Instanz von wp_query oder etwas Ähnliches?

Gleiches Beispiel:

Wie würde ich den Post-Typ bestimmen, damit ich benutzerdefinierte Joins für jeden benutzerdefinierten Post-Typ erstellen kann, den ich auf der Admin-Seite habe?

Was macht der posts_fields Filter Hook? Aus dem Beispiel, das ich gesehen habe, sieht es so aus, als ob es die Spalten in der SELECT-Klausel eines SQL-Aufrufs ersetzt.

Bin ich in dieser Annahme richtig, und hat es auch mehr Parameter, die aufgerufen werden können?

Ich finde einige Beispiele, kann aber nirgendwo eine solide Dokumentation finden.

3
Manny Fleurmond

Wenn Sie eine der Methoden zum Abfragen von Beiträgen (query_posts()-, get_posts()- oder WP_Query-Objekt) verwenden, werden die von Ihnen angegebenen Argumente verarbeitet und in eine SQL-Abfrage umgewandelt. Dies geschieht in der Methode WP_Query->&get_posts().

Da Argumente nicht allmächtig sind, gibt es viele Hooks, mit denen Teile der resultierenden SQL-Abfrage geändert oder überschrieben werden können.

  • posts_join ist Teil einer Abfrage, die SQL-JOINs verarbeitet. Dabei werden dem Mix zusätzliche Tabellen hinzugefügt, z. B. Tabellen, die sich auf Taxonomien beziehen, wenn sie benötigt werden.

  • posts_fields scheint zu steuern, welche Datenbankfelder in der Abfrage zurückgegeben werden. Standardmäßig werden alle Felder aus der Tabelle posts verwendet.

8
Rarst