Making WordPress.org

Ticket #5854: add-last-modified-date-to-post-columns.php

File add-last-modified-date-to-post-columns.php, 1.8 KB (added by SergeyBiryukov, 5 years ago)
Line 
1<?php
2class Add_Last_Modified_Date_To_Post_Columns {
3
4 function __construct() {
5 add_filter( 'manage_posts_columns', array( $this, 'add_column' ), 10, 2 );
6 add_filter( 'manage_edit-post_sortable_columns', array( $this, 'add_sortable_column' ), 10, 2 );
7 add_action( 'manage_posts_custom_column', array( $this, 'display_column' ), 10, 2 );
8 add_action( 'admin_enqueue_scripts', array( $this, 'add_inline_style' ) );
9 }
10
11 function add_column( $posts_columns, $post_type ) {
12 $posts_columns['modified'] = __( 'Last Modified' );
13
14 return $posts_columns;
15 }
16
17 function add_sortable_column( $sortable_columns ) {
18 $sortable_columns['modified'] = array( 'modified', true );
19
20 return $sortable_columns;
21 }
22
23 function display_column( $column_name, $post_id ) {
24 global $mode;
25
26 if ( 'modified' !== $column_name ) {
27 return;
28 }
29
30 $post = get_post( $post_id );
31
32 if ( '0000-00-00 00:00:00' == $post->post_date ) {
33 $t_time = $h_time = __( 'Unpublished' );
34 } else {
35 $t_time = get_the_modified_time( __( 'Y/m/d g:i:s A' ) );
36 $m_time = $post->post_modified;
37 $time = get_post_modified_time( 'G', true, $post );
38
39 $time_diff = time() - $time;
40
41 if ( $time_diff > 0 && $time_diff < DAY_IN_SECONDS ) {
42 $h_time = sprintf( __( '%s ago' ), human_time_diff( $time ) );
43 } else {
44 $h_time = mysql2date( __( 'Y/m/d' ), $m_time );
45 }
46 }
47
48 if ( 'excerpt' === $mode ) {
49 echo $t_time;
50 } else {
51 echo '<abbr title="' . $t_time . '">' . $h_time . '</abbr>';
52 }
53 }
54
55 function add_inline_style( $hook_suffix ) {
56 if ( 'edit.php' !== $hook_suffix ) {
57 return;
58 }
59
60 wp_add_inline_style( 'wp-admin', '.fixed .column-modified { width: 10% }' );
61 }
62
63}
64
65new Add_Last_Modified_Date_To_Post_Columns;
66?>