The post_date_column_status WordPress PHP filter allows you to modify the status text of a post.
Usage
add_filter('post_date_column_status', 'your_custom_function', 10, 4); function your_custom_function($status, $post, $column_name, $mode) { // your custom code here return $status; }
Parameters
$status
(string) – The current status text of the post.$post
(WP_Post) – The post object.$column_name
(string) – The name of the column where the status text is displayed.$mode
(string) – The list display mode (‘excerpt’ or ‘list’).
More information
See WordPress Developer Resources: post_date_column_status
Examples
Change status text color
Change the status text color to green for published posts.
add_filter('post_date_column_status', 'change_status_text_color', 10, 4); function change_status_text_color($status, $post, $column_name, $mode) { if ($column_name == 'date' && $post->post_status == 'publish') { $status = '<span style="color: green;">' . $status . '</span>'; } return $status; }
Add custom status text
Display “Featured” status text for posts with a specific meta value.
add_filter('post_date_column_status', 'add_custom_status_text', 10, 4); function add_custom_status_text($status, $post, $column_name, $mode) { if ($column_name == 'date' && get_post_meta($post->ID, 'featured', true) == 'yes') { $status = 'Featured'; } return $status; }
Change status text for scheduled posts
Modify the status text for scheduled posts to show “Coming Soon”.
add_filter('post_date_column_status', 'change_scheduled_status_text', 10, 4); function change_scheduled_status_text($status, $post, $column_name, $mode) { if ($column_name == 'date' && $post->post_status == 'future') { $status = 'Coming Soon'; } return $status; }
Hide status text for draft posts
Remove the status text for draft posts.
add_filter('post_date_column_status', 'hide_draft_status_text', 10, 4); function hide_draft_status_text($status, $post, $column_name, $mode) { if ($column_name == 'date' && $post->post_status == 'draft') { $status = ''; } return $status; }
Append custom text to status
Add ” – Edited” to the status text for all posts.
add_filter('post_date_column_status', 'append_custom_text_to_status', 10, 4); function append_custom_text_to_status($status, $post, $column_name, $mode) { if ($column_name == 'date') { $status .= ' - Edited'; } return $status; }