Les update_post_meta
hooks sont appelés à partir de la update_metadata()
fonction plus générique , donc vous ne l'avez peut-être pas trouvé directement. Les trois crochets sont:
update_post_metadata
, un filtre qui vous permet de "détourner" la mise à jour des métadonnées et de faire autre chose. Si vous connectez une fonction qui renvoie un booléen, l'exécution s'arrête là et le booléen est renvoyé.
update_post_meta
, une action qui est appelée avant la mise à jour des données dans la base de données.
updated_post_meta
, une action qui est appelée après la mise à jour des données dans la base de données.
Si la clé de méta n'existait pas dans la base de données encore, update_metadata()
passe le contrôle add_metadata()
, ce qui a des crochets similaires add_post_metadata
, add_post_meta
et added_post_meta
. Cela se produit avant d' update[d]_post_meta
être appelé. Donc , si vous voulez faire quelque chose lorsque la clé de méta est ajouté ou mis à jour, assurez - vous de brancher dans les deux update*
et les add*
crochets - mais avis que si les updated_*
et added_*
actions passent des paramètres similaires, update_*
et add_*
ne le font pas ( add_post_meta
ne passe pas un ID méta premier) .
delete_metadata()
comporte des crochets similaires delete_post_metadata
, delete_post_meta
et deleted_post_meta
.
Exemple de code:
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
utilisationupdate_metadata
et là-dedans, il y avait des crochetsadded_post_meta
etupdated_post_meta
mais c'est aussi loin que je pouvais obtenir. Je n'ai pas compris comment l'utiliser. Mais maintenant je pense que j'ai compris :)