web-dev-qa-db-fra.com

Est-il possible de sauvegarder/modifier une publication sans appeler le hook d'action "save_post"?

Un save_post hook est exécuté lorsque vous enregistrez une publication. En fait, les révisions et les sauvegardes automatiques appellent également ce crochet. Même si vous changez simplement le statut publié à brouillon, cela déclenche le hook save_post.

Existe-t-il un moyen (utilisant les méthodes wp normales) qu'un post puisse être modifié sans appeler save_post? (comme l'édition de champs personnalisés)

Je me demande si je dois relier transition_post_status ou updated_postmeta ou si save_post est suffisant.

3
Xeoncross

TL; DR: Non, vous pouvez utiliser save_post . Sauf si vous envisagez une modification programmatique deonlymetadata "modifier un message".


Il existe (théoriquement) un moyen de modifier une publication sans déclencher le hook save_post action: Modification directe de la base de données.

Mais pour quelqu'un, aucun auteur de thème ni de plug-in ne ferait ce choix et, pour un autre, il contournerait également tous les autres crochets d'action possibles.

Les autres points que vous mentionnez concernent des cas d'utilisation totalement différents:
update_post_meta ou updated_postmeta s’exécutent uniquement lorsque les métadonnées sont modifiées, c’est-à-dire que seuls le titre ou le contenu sont modifiés.
transition_post_status ne fonctionnera pas si un article publié est simplement édité.

Iffvous considérez que les mises à jour programmées des métadonnées de publication sont une modification de la publication elle-même que vous devrez effectivement relier au update_post_meta hook ou à un autre. Le update_post_meta() appelle la fonction update_metadata() ( source sur trac ) qui exécutera plusieurs points d’accrochage (voir source liée), mais pas save_post .

6
Johannes Pille