Die update_post_meta
Hooks 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_meta
Eine Aktion, die aufgerufen wird, bevor die Daten in der Datenbank aktualisiert werden.
updated_post_meta
Eine 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_meta
und added_post_meta
. Dies geschieht, bevor es update[d]_post_meta
aufgerufen 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_meta
und 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_meta
verwendenupdate_metadata
und dort gibt es Hakenadded_post_meta
und ,updated_post_meta
aber das ist so weit wie ich bekommen konnte. Ich habe nicht verstanden, wie man es benutzt. Aber jetzt denke ich, dass ich es habe :)