From fb4f7ea36e57c5db5605e309c958376542aab369 Mon Sep 17 00:00:00 2001 From: Alex Schnapper Date: Sat, 8 Aug 2026 08:25:58 +0200 Subject: [PATCH] Add last modified column to admin lists --- functions/admin.php | 55 ++++++++++++++++++++++++++++++++++++++++ languages/de_DE.mo | Bin 19536 -> 19664 bytes languages/de_DE.po | 12 +++++++++ languages/sunflower.pot | 12 +++++++++ 4 files changed, 79 insertions(+) diff --git a/functions/admin.php b/functions/admin.php index 12a30392..543ec5f1 100644 --- a/functions/admin.php +++ b/functions/admin.php @@ -219,6 +219,61 @@ function sunflower_admin_style() { add_action( 'admin_enqueue_scripts', 'sunflower_admin_style' ); +/** + * Add the last modified column to post, page and event list tables. + * + * @param array $columns Existing list table columns. + * @return array List table columns including last modified. + */ +function sunflower_add_modified_by_column( $columns ) { + $columns['last_modified_by'] = __( 'Last modified', 'sunflower' ); + + return $columns; +} + +add_filter( 'manage_posts_columns', 'sunflower_add_modified_by_column' ); +add_filter( 'manage_pages_columns', 'sunflower_add_modified_by_column' ); +add_filter( 'manage_sunflower_event_posts_columns', 'sunflower_add_modified_by_column' ); + +/** + * Show the last editor and modification timestamp in the custom list table column. + * + * @param string $column Current column name. + * @param int $post_id Current post ID. + */ +function sunflower_fill_modified_by_column( $column, $post_id ) { + if ( 'last_modified_by' !== $column ) { + return; + } + + $last_user_id = (int) get_post_meta( $post_id, '_edit_last', true ); + if ( ! $last_user_id ) { + $last_user_id = (int) get_post_field( 'post_author', $post_id ); + } + + $user = get_userdata( $last_user_id ); + $user_name = $user ? $user->user_login : __( 'Unknown', 'sunflower' ); + + $modified_date = get_the_modified_date( 'd.m.Y', $post_id ); + $modified_time = get_the_modified_time( 'H:i', $post_id ); + $modified_at = sprintf( + /* translators: %1$s is the modification date, %2$s is the modification time. */ + __( '%1$s at %2$s', 'sunflower' ), + $modified_date, + $modified_time + ); + + printf( + '%1$s
%2$s', + esc_html( $user_name ), + esc_html( $modified_at ) + ); +} + +add_action( 'manage_posts_custom_column', 'sunflower_fill_modified_by_column', 10, 2 ); +add_action( 'manage_pages_custom_column', 'sunflower_fill_modified_by_column', 10, 2 ); +add_action( 'manage_sunflower_event_posts_custom_column', 'sunflower_fill_modified_by_column', 10, 2 ); + /** * Add footer note to all backend pages. */ diff --git a/languages/de_DE.mo b/languages/de_DE.mo index aff3a20341a46f820d9049427f4b409c3a2f65fe..afb433a98e73d5fe48b7ea5f3eed50ba603c255f 100644 GIT binary patch delta 4838 zcmYk<2~<^e0>|+`$i4^yf-K4-Sp;#xEjJW3X%vx!Tm}^f1`Gwk6t^^=PEezzqopN9 zHAVS?Tno{mWMNQ=KFj1Z)g68-~0UUeed1>dN0tq z%cry1$9*lzZ>OPLAxY#`fH7%4#vBRPSz{iFGA0aXpf8r;9o{d;|6)muF%g_Ejx{D4 zE3iAR#1L#ke#|yrX5c;y#CynB-Nq-*7(Y(LqCY00E|7w{z+jBTF~}FpG|a|wRD)aX z`+G2#V-KojcO5tU(FR$m38Q=!crh zkr;$U_IM7e!FqdsEouObr~x%w_aS33hmaq0i5Iul{3ex=7?9{p>3HPFl<-o3^{9?@ zpc*=dYT$3U0KdiASir@Cu@%*D8*1bosF9yQeg6z&;zv>T&NB`i2Rrty!6LqsF`~WwcA@!*E@w8&?VFW z+*fSnwpE|j8_}pWOGiyvHfm-bMl~=Ob-`y)Bin`==^oT==fQNmj{KPL2b_ToLalu+ z@?3G7LMpnQN>L+QidqskYHGhkP33j;&Wt_Zg?cdgvr)A6QK;`{paw7kwG>lOGgXe- z{i|_0ZpYEO|Nl;>coJt}R)#Yp8&ONP z8M(B1-X6E3I(W<;U&L72H=o%Pw@@ScH>&48{hXPIN6o}ad>l8R*8F>GSf;a^)6tLf zIj9kjKuvWasw49;2sfhkz-DykQF)Py*6wrECcJ@KbN?)723$Cv9k@1Pp^5xZgJ2(!b`D=Ju z_y1igYTzjItF^s=>fu*727g4Y?J(wBQ@;N{sflc zN2t#a%=NCdnS}a$1!|xTxy-*tzMd0u6Y2{)FbUs6p1S5VrsFN7uO@n&^Z6pw`=zLX zY_M)cU8lwRuJyF_D(bfU*Er^150tx{(3&KVr?)r>)zf7dhmF=2WI4@2WLuc;P#ws~ zbM{Ul>U(9FfJ?2Ot&P~5 z;}-0Lhp`mDz=v_zM1DcxI@H?dO>%z8)uOKFZl)6M!)=DYJOd}>tX7u<9&c^OM z1T>`!t!puh<87!8cc3=qDOAU=q6=@J_DV3l(aiL~MC^+-y8p*h(Nw&RsdS_rlR3Wn zGiOPllJ}u^ajnIGe~HbsUPCp$OCiEEV;=0jLh;VjvdS;}Q&`eN#?F zYf*p&Kx9}t~`>wmoeroNz3r5*+&MER`M=U$@9MQFB)p^ zRFj{R8uC}7GM9MUf5Lmny^Qg;o^O5ADy|SeqTQ~t$-xZ8qr^kT+H+&9_xX&m&oMO%Lse{bue zo$Mug7I^1BLlsInIY44aU!ro6{E0lH16!WQ56D_lL|!H;VGibf>?DUsus!!V&LSU? zGvqN+PxN1w_Yck$m_}YAmq`>kMheJEl0z!VFNjJa8BC^=H^@Yy5=&n2)|}rbGi|-M zH9@B3q%L=rH@MP<_@*xRxT1)GpOApMn!5T`b)Ll;C;TJ5 zpI@@mU%{uiU<#$Syxe2Q(jls;CU!N GEZ~1UO6$o0 delta 4713 zcmYk<4OG?j9mnx6s0bH)0wF`dt2}55YG|OMLW-DWV%ij+a$86~ZBtu{IK5i3&D4w% zCs{g;xiyhtq*If8N^~lXrs2}YPG|14PPT{K>6}rcy+8N=!wySf3#UB_Q!wGo`UTd*W0WI?XhuYF_?@zE8+C!Z*c01PC-k_-EFDu&H+&5B z{URKPt5G+23p4Q)rs6-48(C~027&RY-;Ko-?r-^2G}tAm8?C`Y+=d$AN64hu9gM}h z&WL-t2*>?U7o3lgSd59d0(IUCr~y`@2DS$^(1ZG(``c01aLRcFHL{zi4t$18f_;VI z7#;5&_eI?>6V*N*HGs*e0nK+VMfz-|$RDfVLrYzQfl*X`M@3T_+SiOf7RSdUn2GA? z2GotVqi#@z3$YewV|T6=fhDLBuRx7>4eGr0sDW%jKUSeScrti$ZlY4b_n`sNWT$W~>M&;1bk%HK-BSp{D){&c_ziz(yo7|GMCWB(F!a zP(3b2ZJrgV8}C9kzSW^ddLGsBCS-rvE!4>GqB_!sy)d$$ccVls;5Z%C{xmW+D-Tf7 zg$|%bQis}1Cr~qS7S+>6)E@W%)uB7+$1pyI;6T*xXQFm_5$bwnr~y5P8o&Tz3)X}AaZW9RtLz;2_~{tJx4&;j04 z)B_nM$`->4>DVc8K|}1=RASh#n-SiwxTZl7t|EDp*rBZ z&+FJw)Y@lb9!^9p*=E${tHglT`b{btc@yU1E!2hk4)!jTiMnA9>PC4Ofzw_4T<1dU zN_#PC?<~h~+=v?S7Sw%qx%TS8%)fqcmQ_&5V zyD!$EZm=19;j7MCREN%>c5f@{cVFQQjLG(iTn-UM=lnR0r2$j-LOW zRJ69usHx9j-Zj!us9m3nn(BPi<2B8>3N-_}un)fC+Urs0-#}fj6?OinsE*%74Xh^{ zA%^?g04n-H7HSIfkU`lj)D5qH z&heM1>m^TQ#zJ^s;gcNaI3BebC!u;g5B<0p zHL@+J8L7a&_&P4b)2JC3LN8P3Ko<7nc-}+aQmjK=Zy$2sfYngZCOqpk*dI|B{2U`O zVv4u+vACY&WYqWj(T@$NC22)X>3@)IV^I%#@BD{R9eotTa3Sg`DM6o}|J77F(Xa`- zV7WWqikg`n7>?Db6Az;{Wdmv^uDIiCsF8h)T7tjh{rF!Tgu@>3_DT`zIx8`o``ace zemsGhcoTVRTDPg*1t%gi87!;$JWXCDOpu)*Ylx4GBpZmzkBDYN1L`RExk@wso@iqR zG{RZr6{7MoVae=QI&ek3eV3dg8oA0mvNu@c{}0Ze<2CX#!ZxrU5MBlLQ}ScN-%-IA zmj=xfsG=%wIFe0%O&Gi_CMxSZf}eUUhq&W1JVP##QzU}SCwhWjBB|sM=|@zaA`PUF zbS8;JWuoq%Oyzx|O|^`uJVO?c_2dW{L^{fHS4qcjyZTXQ2YTdGo+q!9J>)#eAS!H$ zV40!uuOQ#@j)VVI{sr}+WIw5O?YT~&%~e8XlO^OmqB6(BN}VsD{(exIH zaFz@vyT~@uLbAwngcnxu-|IzqoOC7A$p06;Av?-IDl179$s@&N2iZteeoI~p*7TlW z{#S9}C(~WyZ}1JWk8E;nb8)AuZ^2)>x~M1BBuodCG>_o_kZY*NkO8jkG9Dx4?l`#r zU*zB&vX(qbb`zCI4|@xn$eSeGwOz-@$yIWJEF#|{{mE$ZG)W