The edit_post_{$post->post_type} WordPress PHP action fires once an existing post has been updated. The dynamic part of the hook name, $post->post_type, refers to the post type slug. Possible hook names include edit_post_post and edit_post_page.
Usage
add_action('edit_post_post', 'your_custom_function', 10, 2);
function your_custom_function($post_id, $post) {
// your custom code here
}
Parameters
- $post_id (int): The post ID.
- $post (WP_Post): The post object.
More information
See WordPress Developer Resources: edit_post_{$post->post_type}
Examples
Update Post Meta
Update the post meta ‘_views’ every time a post is updated.
add_action('edit_post_post', 'update_views_meta', 10, 2);
function update_views_meta($post_id, $post) {
$views = get_post_meta($post_id, '_views', true);
$views++;
update_post_meta($post_id, '_views', $views);
}
Send Email Notification
Send an email notification to the admin when a page is updated.
add_action('edit_post_page', 'send_email_notification', 10, 2);
function send_email_notification($post_id, $post) {
$to = get_option('admin_email');
$subject = 'Page Updated: ' . $post->post_title;
$message = 'The page "' . $post->post_title . '" has been updated.';
wp_mail($to, $subject, $message);
}
Update Post Slug
Automatically update the post slug based on the post title.
add_action('edit_post_post', 'update_post_slug', 10, 2);
function update_post_slug($post_id, $post) {
$new_slug = sanitize_title($post->post_title);
wp_update_post(array('ID' => $post_id, 'post_name' => $new_slug));
}
Sync Custom Taxonomy
Sync a custom taxonomy term with the post’s category.
add_action('edit_post_post', 'sync_custom_taxonomy', 10, 2);
function sync_custom_taxonomy($post_id, $post) {
$categories = wp_get_post_categories($post_id);
wp_set_object_terms($post_id, $categories, 'your_custom_taxonomy');
}
Log Post Updates
Log post updates to a custom log file.
add_action('edit_post_post', 'log_post_updates', 10, 2);
function log_post_updates($post_id, $post) {
$log_file = WP_CONTENT_DIR . '/post-updates.log';
$log_entry = date('Y-m-d H:i:s') . ' - Post ID: ' . $post_id . ' - Title: ' . $post->post_title . "\n";
file_put_contents($log_file, $log_entry, FILE_APPEND);
}