update_post_meta
フックは、より一般的なから呼び出されるupdate_metadata()
関数で、あなたが直接それを見つけていない可能性があります。3つのフックは次のとおりです。
メタキーがデータベースにまだ存在していなかった場合は、update_metadata()
に制御を渡すadd_metadata()
同様のフックを持っている、add_post_metadata
、add_post_meta
、とadded_post_meta
。これupdate[d]_post_meta
は呼び出される前に発生します。ですから、メタキーが追加されたときに何かをしたい場合や、更新、両方にフックするようにしてくださいupdate*
とadd*
フック-しかし一方であることの通知updated_*
とadded_*
行動が似たパラメータを渡す、update_*
とadd_*
(いないadd_post_meta
最初のメタIDを渡しません) 。
delete_metadata()
同様のフックがあります:delete_post_metadata
、delete_post_meta
およびdeleted_post_meta
。
サンプルコード:
add_action( 'added_post_meta', 'wpse16835_after_post_meta', 10, 4 );
add_action( 'updated_post_meta', 'wpse16835_after_post_meta', 10, 4 );
function wpse16835_after_post_meta( $meta_id, $post_id, $meta_key, $meta_value )
{
if ( 'wpse16835_meta_key' == $meta_key ) {
wpse16835_do_something( $post_id, $meta_value );
}
}
add_action( 'deleted_post_meta', 'wpse16835_deleted_post_meta', 10, 4 );
function wpse16835_deleted_post_meta( $deleted_meta_ids, $post_id, $meta_key, $only_delete_these_meta_values )
{
if ( 'wpse16835_meta_key' == $meta_key ) {
wpse16835_undo_something( $post_id );
}
}
update_post_meta
使用することに気づいていてupdate_metadata
、そこにはフックがadded_post_meta
ありましたupdated_post_meta
が、それは私が得ることができる限りです。使い方がわかりませんでした。しかし今、私はそれを持っていると思う:)