The edit_post WordPress PHP action fires once an existing post has been updated.
Usage
add_action('edit_post', 'my_custom_edit_post', 10, 2);
function my_custom_edit_post($post_id, $post) {
// your custom code here
}
Parameters
$post_id(int) – The ID of the post being updated.$post(WP_Post) – The post object for the updated post.
More information
See WordPress Developer Resources: edit_post
Examples
Update post meta on post update
Update a custom post meta field when the post is updated.
add_action('edit_post', 'update_custom_meta_field', 10, 2);
function update_custom_meta_field($post_id, $post) {
// Update the custom meta field 'my_custom_meta_field'
update_post_meta($post_id, 'my_custom_meta_field', 'Updated value');
}
Send an email notification on post update
Send an email to the site administrator when a post is updated.
add_action('edit_post', 'send_email_on_post_update', 10, 2);
function send_email_on_post_update($post_id, $post) {
$admin_email = get_option('admin_email');
$subject = 'A post has been updated on your site';
$message = 'The post with ID ' . $post_id . ' has been updated.';
wp_mail($admin_email, $subject, $message);
}
Log post update
Log post updates to a custom log file.
add_action('edit_post', 'log_post_update', 10, 2);
function log_post_update($post_id, $post) {
$log_message = 'Post ID ' . $post_id . ' has been updated at ' . current_time('mysql') . PHP_EOL;
$log_file = fopen('post_update_log.txt', 'a');
fwrite($log_file, $log_message);
fclose($log_file);
}
Set post format on update
Automatically set the post format to ‘image’ when a post is updated and has a featured image.
add_action('edit_post', 'set_image_post_format', 10, 2);
function set_image_post_format($post_id, $post) {
if (has_post_thumbnail($post_id)) {
set_post_format($post_id, 'image');
}
}
Add a category to updated posts
Add a specific category to the post when it’s updated.
add_action('edit_post', 'add_category_on_post_update', 10, 2);
function add_category_on_post_update($post_id, $post) {
$category_id = 5; // Replace this with the desired category ID
wp_set_post_categories($post_id, array($category_id), true);
}