Les update_post_metahooks 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_metaet 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_metane passe pas un ID méta premier) .
delete_metadata()comporte des crochets similaires delete_post_metadata, delete_post_metaet 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_metautilisationupdate_metadataet là-dedans, il y avait des crochetsadded_post_metaetupdated_post_metamais c'est aussi loin que je pouvais obtenir. Je n'ai pas compris comment l'utiliser. Mais maintenant je pense que j'ai compris :)