web-dev-qa-db-fra.com

Qu'est-ce qui est considéré comme une requête par défaut pour un filtre de requête?

Comme indiqué dans l'une des réponses de à cette question et dans l'entrée du codex pour le filtre request , ledit filtre est appelé uniquement une requête par défaut, telle que la requête principale utilisée pour une boucle. Ma question est la suivante: qu'est-ce qui est considéré ou non comme une requête par défaut? La création d'un nouvel objet WP_Query serait-elle considérée comme telle?

1
Manny Fleurmond

La requête "par défaut" est celle que WordPress effectue elle-même, en fonction de l'URL et autres, automatiquement.

Toute requête que vous créez manuellement, via un nouveau WP_Query ou en appelant query_posts (), n’utilisera pas le filtre "request".

Il n'y a qu'une seule requête "par défaut" et vous ne pouvez la déclencher via aucun code du modèle.

2
Otto

request n'est appliquée qu'une seule fois, par parse_request() , une méthode de la méthode WP classe. Il n'y a qu'une seule référence à cela, c'est par une autre méthode de WP , main() . main() est référencé une fois, par wp() . wp() est référencé dans différents contextes par un certain nombre de fonctions et de fichiers différents: wp_trackback.php, get_feed(), wp-blog-header.php, wp_edit_posts_query() et wp_edit_attachments_query(). Ainsi, en regardant à travers cela, rien de ce que `WP_Query appelle n'est répertorié.

Réponse courte: je dirais non, cela n’appelle pas request.

Ceci étant dit, mon travail est basé sur le travail à l'envers avec phpxref (d'où les liens), donc j'ai peut-être manqué quelque chose ou il a peut-être manqué quelque chose. Une meilleure façon de poser votre question pourrait être de demander ce que vous essayez de faire, pas la mise en œuvre.

Juste une remarque: main() appelle query_posts(), qui (je pense) effectue la requête par défaut, etc., mais une instance de WP_Query à elle seule ne devrait pas suffire à déclencher cela à partir de ce que j'ai vu.

2
mor7ifer