Esse método mais simples seria editar os dados no ponto em que foram inseridos, em vez de atualizá-los posteriormente, usando wp_insert_post_data
em vez de save_post
. Isso funciona na criação de uma nova postagem ou na atualização de uma postagem existente sem alteração. Isso também evita o perigo de criar um loop infinito acionando update_post
dentro de save_post
.
add_filter( 'wp_insert_post_data' , 'modify_post_title' , '99', 1 ); // Grabs the inserted post data so you can modify it.
function modify_post_title( $data )
{
if($data['post_type'] == 'rating' && isset($_POST['rating_date'])) { // If the actual field name of the rating date is different, you'll have to update this.
$date = date('l, d.m.Y', strtotime($_POST['rating_date']));
$title = 'TV ratings for ' . $date;
$data['post_title'] = $title ; //Updates the post title to your new title.
}
return $data; // Returns the modified data.
}