Добавить сообщение meta на основе другого значения meta сообщения перед публикацией публикации

Я хочу добавить мета-значение в свой пост, который будет основан на другом мета-значении, перед публикацией публикации. Это то, что я пробовал

add_action('save_post_my_custom_post', 'add_custom_field_automatically' ); function add_custom_field_automatically($post_ID) { $new_meta_value = get_post_meta($post_ID,'_my_meta_key',TRUE).'to ' .' something new'; add_post_meta($post_ID, '_my_new_meta_key', $new_meta_value, true); } 

Но это не сработает. Крюк срабатывает правильно, он сохраняет только «что-то новое», но я ожидаю, что значение должно быть «моей мета-ценностью для чего-то нового»,

Решение использует added_post_meta и updated_post_meta hook.

Вот рабочий код.

 add_action( 'added_post_meta', 'add_custom_field_automatically', 10, 4 ); add_action( 'updated_post_meta', 'add_custom_field_automatically', 10, 4 ); function add_custom_field_automatically( $meta_id, $post_id, $meta_key, $meta_value ) { if ( '_my_meta_key' == $meta_key ) { add_post_meta($post_id, '_my_new_meta_key', $meta_value.'to something new', true); } } 

Используйте global $post в верхней части страницы перед началом функции

 global $post;