Wie Sie weitere Aktualisierungen von benutzerdefiniertem Meta verhindern, wenn Sie mithilfe von Aktionen ein Meta basierend auf einem anderen festlegen

Ich benutze das Meta Box-Plugin von rilwis (siehe https://github.com/rilwis/meta-box ), um benutzerdefinierte Meta-Felder zu einem benutzerdefinierten Beitragstyp hinzuzufügen.

Ich möchte dann einen Teil der Metadaten basierend auf dem Wert eines anderen auffüllen. Ich mache das mit dem Aktionshaken updated_post_meta, indem ich einen Code ähnlich dem Folgenden verwende:

add_action( "updated_post_meta", "my_generate_extra_meta", 10, 4 ); add_action( "added_post_meta", "my_generate_extra_meta", 10, 4 ); function my_generate_extra_meta( $meta_id, $object_id, $meta_key, $meta_value ) { // Only do this for resources post type if (get_post_type($object_id) == 'resource') { // Only do this if we're saving the _my_resource_meta_1 data if ($meta_key == '_my_resource_meta_1') { $new_meta = do_some_processing_of( $meta_value ); update_post_meta( $object_id, '_my_resource_meta_2', $new_meta ); } } } 

Dies scheint jedoch zu geschehen, bevor das _my_resource_meta_2 aus den übergebenen Daten gespeichert wird. Also wird der Wert, den ich mit update_post_meta speichere, durch den übergebenen Wert überschrieben (oder gelöscht, wenn der Metawert leer war).

Was ich wissen möchte ist, was ist der beste Weg, um spätere Updates von _my_resource_meta_2 hier zu verhindern?

Der beste Weg, den ich bisher gefunden habe, ist etwas zu tun wie:

 $_POST['_my_resource_meta_2'] = $new_meta; $_REQUEST['_my_resource_meta_2'] = $new_meta; 

am Ende der Aktion. Aber das fühlt sich an wie ein hässlicher Hack, und ich denke, Sie müssen immer noch update_post_meta machen, falls die _my_resource_meta_2 zuerst aktualisiert wird, was bedeutet, dass Sie das Update zweimal machen.

Kann jemand an andere Lösungen für dieses Problem denken? Gibt es einen besseren Weg?

Vielen Dank

Solutions Collecting From Web of "Wie Sie weitere Aktualisierungen von benutzerdefiniertem Meta verhindern, wenn Sie mithilfe von Aktionen ein Meta basierend auf einem anderen festlegen"