投稿を保存するときに実行される save_post フックがあります。実際、改訂や自動保存もこのフックを呼び出します。単に公開から下書きにステータスを変更したとしても、save_post
フックが起動されます。
save_post
を呼び出さずに投稿 を変更 できる方法はありますか(通常のwpメソッドを使用) (カスタムフィールドの編集など)
transition_post_status
やupdated_postmeta
に結びつける必要があるのか、それともsave_post
で十分なのか、疑問に思います。
TL; DR:いいえ、 save_post
を使用できます。あなたがメタデータのプログラムによる変更のみを「記事を変更する」と考えていない限り。
(理論的には) save_post
アクションフックを引き起こさずに投稿を修正する方法があります:データベースの直接修正。
しかし、プラグインやテーマの作者が正しい考えを持っていない人にとってはそのような道をたどり、他の人にとっては考えられる他のアクションフックをすべて回避することになります。
あなたが言及する他のフックは全く異なるユースケースのためのものです:update_post_meta
またはupdated_postmeta
は、メタデータが変更されたときにのみ実行されます。つまり、タイトルまたはコンテンツのみが編集されたときには実行されません。transition_post_status
は、公開された投稿を編集しただけでは実行されません。
Iffあなたは、投稿メタデータのプログラムによる更新を投稿自体の変更とみなします。確かに update_post_meta
フック などに結びつけなければなりません。 。 update_post_meta()
関数は update_metadata()
( source on trac )を呼び出しますが、いくつかのアクションフックを実行します(リンクされたソースを参照)。 save_post
ではありません。