Los ganchos update_post_meta
se llaman desde el más genérico update_metadata()
, por lo que es posible que no la hayas encontrado directamente. Los tres ganchos son:
-
update_post_metadata
, un filtro que te permite "secuestrar" la actualización de metadatos y hacer otra cosa. Si conecta una función que devuelve un valor booleano, la ejecución se detiene allí y se devuelve el valor booleano.
-
update_post_meta
, una acción que se llama < em> before los datos se actualizan en la base de datos.
-
updated_post_meta
, una acción que se llama < em> after los datos se actualizan en la base de datos.
Si la meta clave no existía todavía en la base de datos, update_metadata()
pasa el control a add_metadata()
, que tiene los ganchos similares add_post_metadata
, add_post_meta
y added_post_meta
. Esto sucede antes de que se llame a update[d]_post_meta
. Por lo tanto, si desea hacer algo cuando se agrega la clave de metadatos o , asegúrese de enlazar tanto el update*
como el add*
ganchos, pero tenga en cuenta que mientras el updated_*
y el% Las acciones de added_*
pasan parámetros similares, update_*
y add_*
no ( add_post_meta
no pasa primero un ID de meta).
delete_metadata()
tiene ganchos similares: delete_post_metadata
, delete_post_meta
y deleted_post_meta
.
Código de muestra:
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 );
}
}