The post_{$field} WordPress PHP filter allows you to modify the value of a specific post field before it’s used or displayed.
Usage
add_filter('post_{$field}', 'your_custom_function', 10, 2); function your_custom_function($value, $post_id) { // your custom code here return $value; }
Parameters
- $value (mixed) – The value of the post field.
- $post_id (int) – The ID of the post being filtered.
More information
See WordPress Developer Resources: post_{$field}
Examples
Change post title
Modify the post title to add a prefix.
add_filter('post_title', 'add_prefix_to_title', 10, 2); function add_prefix_to_title($title, $post_id) { $prefix = 'Prefix: '; $new_title = $prefix . $title; return $new_title; }
Make post content uppercase
Transform the post content to uppercase.
add_filter('post_content', 'make_content_uppercase', 10, 2); function make_content_uppercase($content, $post_id) { return strtoupper($content); }
Replace specific word in post excerpt
Replace a specific word in the post excerpt with another word.
add_filter('post_excerpt', 'replace_word_in_excerpt', 10, 2); function replace_word_in_excerpt($excerpt, $post_id) { $search = 'old_word'; $replace = 'new_word'; return str_replace($search, $replace, $excerpt); }
Add custom CSS class to post thumbnail
Add a custom CSS class to the post thumbnail’s HTML.
add_filter('post_thumbnail_html', 'add_custom_class_to_thumbnail', 10, 2); function add_custom_class_to_thumbnail($html, $post_id) { $custom_class = 'my-custom-class'; return str_replace('class="', 'class="' . $custom_class . ' ', $html); }
Append read more link to post content
Add a “Read More” link to the end of the post content.
add_filter('post_content', 'append_read_more_link', 10, 2); function append_read_more_link($content, $post_id) { $read_more_link = ' <a href="' . get_permalink($post_id) . '">Read More</a>'; return $content . $read_more_link; }