web-dev-qa-db-fra.com

Existe-t-il un filtre get_post (s) pouvant modifier/remplacer complètement la sortie?

J'aimerais créer un plug-in qui crée un cache JSON de données sauvegardées/mises à jour. Mais pour que le plugin soit d'usage général, j'aurais besoin de surcharger la sortie de get_posts et des autres get_functions.

Je sais que le cache html est plus rapide et que de bons plug-ins existent déjà à cet effet, mais ce serait une bonne chose à avoir lors de la création d'un SPA et dans les cas où le verrouillage de table se produit comme dans les sites Woo Commerce.

Il y a des points d'ancrage comme updated_post_meta et post_updated mais je n'ai pas trouvé le get_posts filter. Il existe pre_get_posts mais il ne permet que la modification $args, le WP_Query sous-jacent est toujours exécuté.

1
steakoverflow

Si vous regardez vers la fin du processus de requête (qui commence par le filtre pre_get_posts), il existe un filtre appelé the_posts (à ne pas confondre avec the_post). Cela vous permet de modifier complètement la sortie de get_posts, comme vous l'avez demandé.

Attention, cela ne fonctionne que s'il n'y a pas de plugin ou que cela supprime les filtres sur get_posts. Notez également que cela ne fonctionne pas sur get_post .

2
cjbj