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.
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.