Je suis nouveau dans les crochets de filtre "posts_" et je voulais savoir quelques choses de ceux qui sont au courant:
Dans cette question , quelqu'un a posté une réponse en utilisant posts_join
qui a pris un deuxième paramètre de $query
:
add_filter('posts_join',array(&$this,'posts_join'),10,2);
...
function posts_join($join,$query) {
}
Est-ce une instance de wp_query ou quelque chose de similaire?
Même exemple:
Comment pourrais-je déterminer le type de publication pour pouvoir créer des jointures personnalisées pour chaque type de publication personnalisé que j'ai du côté de l'administrateur
Que fait le crochet de filtre posts_fields
? d'après l'exemple que j'ai vu, il semble que cela remplace les colonnes de la clause SELECT
d'un appel SQL
.
Suis-je correct dans cette hypothèse, et a-t-il également plus de paramètres pouvant être appelés?
Je trouve des exemples mais je ne peux obtenir aucune documentation solide nulle part.
Lorsque vous utilisez l'une des méthodes pour rechercher des publications (objet query_posts()
, get_posts()
ou WP_Query
), celles-ci sont traitées et converties en requête SQL. Cela se produit dans la méthode WP_Query->&get_posts()
.
Comme les arguments ne sont pas omnipotents, de nombreux points d'accroche permettent de modifier ou de remplacer des parties de la requête SQL résultante.
posts_join
fait partie de la requête qui gère les jointures SQL - en ajoutant des tables supplémentaires au mixage, par exemple des tables associées à des taxonomies lorsque cela est nécessaire.
posts_fields
semble contrôler les champs de la base de données qui seront retournés dans la requête, il semble utiliser par défaut tous les champs de la table posts
.