ポストエディタにカスタムフィールドがあり、値を _ aaa _ から _ zzz _ ..に変更したとします。
add_action('save_post',
function($post){
$value = get_post_meta($post->ID, 'mykey');
}
, 1);
そのメタキーの古い値( _ aaa _ )を取得するにはどうすればいいですか? save_postの間に(もっと早い優先順位でも)、 _ zzz _ を得ます。
save_post
インポート、投稿/ページ編集フォーム、xmlrpc、または電子メールによる投稿など、投稿またはページが作成または更新されるたびに実行されます。アクション関数の引数:投稿IDと投稿オブジェクト。データがデータベースに保存された後に実行されます。
上の段落はWP Codexから引用されています。
そのため、新しい値をDBに保存した後に起動されるため、このフックを使用して古い値を取得することはできません。 WPにはwp_insert_post
という別のアクションフックがありますが、残念ながらこのフックはsave_post
と同じことをします。
あるいは、フィルタを使用して仕事を終わらせることもできます。 WPは、保存中または保存前に投稿を編集するためのフィルタをほとんど提供しません。 wp_insert_post_data
& content_save_pre
のように動作するかもしれません、と思います。
更新
ここ はこのトピックに関するもう1つのディスカッションです。
私がしたトリックは:
1)入力を挿入した、隠しメタボックスを作成しました。値はcurrent_meta_value
です。
2)save_post
の間、私はnew_meta_value
に対してそれをチェックしました。
それがすべてでした。