The edit_post_{$field} WordPress PHP filter allows you to modify the value of a specific post field before it’s saved in the database.
Usage
add_filter( 'edit_post_title', 'customize_post_title', 10, 2 ); function customize_post_title( $title, $post_id ) { // your custom code here return $title; }
Parameters
- $field (string) – The field you want to modify (e.g., ‘title’, ‘content’, ‘excerpt’, etc.).
- $value (mixed) – The current value of the field.
- $post_id (int) – The ID of the post being edited.
More information
See WordPress Developer Resources: edit_post_{$field}
Examples
Change post title to uppercase
This example converts the post title to uppercase before saving it.
add_filter( 'edit_post_title', 'uppercase_post_title', 10, 2 ); function uppercase_post_title( $title, $post_id ) { $title = strtoupper( $title ); return $title; }
Add a prefix to post content
This example adds a prefix to the post content before saving it.
add_filter( 'edit_post_content', 'add_content_prefix', 10, 2 ); function add_content_prefix( $content, $post_id ) { $prefix = 'This is a prefix: '; $content = $prefix . $content; return $content; }
Truncate post excerpt
This example truncates the post excerpt to a maximum of 100 characters.
add_filter( 'edit_post_excerpt', 'truncate_post_excerpt', 10, 2 ); function truncate_post_excerpt( $excerpt, $post_id ) { $excerpt = substr( $excerpt, 0, 100 ); return $excerpt; }
Add custom metadata to post
This example adds custom metadata to a post before saving it.
add_filter( 'edit_post_meta', 'add_custom_meta', 10, 2 ); function add_custom_meta( $meta, $post_id ) { $meta['_custom_key'] = 'Custom value'; return $meta; }
Modify post slug
This example modifies the post slug by adding a timestamp to it.
add_filter( 'edit_post_name', 'add_timestamp_to_slug', 10, 2 ); function add_timestamp_to_slug( $slug, $post_id ) { $timestamp = time(); $slug = $slug . '-' . $timestamp; return $slug; }