Die update_post_metaHooks werden von der allgemeineren update_metadata()Funktion aufgerufen , sodass Sie sie möglicherweise nicht direkt gefunden haben. Die drei Haken sind:
update_post_metadata, ein Filter, mit dem Sie das Metadaten-Update "hijacken" und etwas anderes tun können. Wenn Sie eine Funktion einbinden, die einen Booleschen Wert zurückgibt, wird die Ausführung dort angehalten und der Boolesche Wert zurückgegeben.
update_post_metaEine Aktion, die aufgerufen wird, bevor die Daten in der Datenbank aktualisiert werden.
updated_post_metaEine Aktion, die aufgerufen wird, nachdem die Daten in der Datenbank aktualisiert wurden.
Wenn die Meta - Taste nicht noch in der Datenbank vorhanden ist , update_metadata()wird die Steuerung an add_metadata(), die die ähnlichen Haken hat add_post_metadata, add_post_metaund added_post_meta. Dies geschieht, bevor es update[d]_post_metaaufgerufen wird. Wenn Sie also etwas tun möchten, wenn der Metaschlüssel hinzugefügt oder aktualisiert wird, müssen Sie sowohl den update*als auch den Hook add*einbinden. Beachten Sie jedoch, dass die updated_*und added_*-Aktionen ähnliche Parameter übergeben update_*und add_*nicht ( add_post_metaübergibt zuerst keine Meta-ID). .
delete_metadata()hat ähnlichen Haken: delete_post_metadata, delete_post_metaund deleted_post_meta.
Beispielcode:
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_metaverwendenupdate_metadataund dort gibt es Hakenadded_post_metaund ,updated_post_metaaber das ist so weit wie ich bekommen konnte. Ich habe nicht verstanden, wie man es benutzt. Aber jetzt denke ich, dass ich es habe :)