我们有时候会对已发布的文章进行修改,但是在“WordPress后台 >> 文章 >> 所有文章”中只显示文章的发布时间,不显示修改时间,那么我们如何实现在后台所有文章中增加一列修改时间并具有排序功能呢?
刚开始我也一头雾水,后来借助百度AI功能,分别搜索“WordPress后台所有文章增加一列修改时间”和“WordPress后台文章按修改时间排序”,然后根据百度AI给出的代码组合起来,竟然就真的实现了在WordPress后台所有文章中增加一列修改时间并具有排序功能。

WordPress后台所有文章中增加一列修改时间并具有排序功能的完整代码如下:
// 在WordPress后台文章列表添加一个新列(修改时间)
add_filter( 'manage_edit-post_columns', 'add_modified_column' );
function add_modified_column( $columns ) {
$columns['modified'] = __( '修改时间' );
return $columns;
}
// 为新列(修改时间)显示文章修改时间
add_action( 'manage_posts_custom_column', 'populate_modified_column', 10, 2 );
function populate_modified_column( $column_name, $post_id ) {
if ( 'modified' === $column_name ) {
$last_modified_time = get_the_modified_time('Y-m-d H:i:s',$post_id);
$postxgsj = '已更新<br>'.$last_modified_time;
echo $postxgsj;
}
}
// 添加自定义排序选项到后台文章列表新列(修改时间)
add_filter( 'manage_edit-post_sortable_columns', 'custom_sortable_columns' );
function custom_sortable_columns( $columns ) {
$custom = array(
'modified' => 'modified',
);
return wp_parse_args( $custom, $columns );
}
// 根据修改时间对文章进行排序
add_action( 'pre_get_posts', 'custom_post_orderby' );
function custom_post_orderby( $query ) {
// 确保我们在后台,以及我们正在查询文章列表,且排序是通过我们的自定义字段
if ( ! $query->is_main_query() || ! $query->is_admin ) {
return;
}
if ( 'edit.php' == $query->get('post_type') && 'modified' == $query->get('orderby') ) {
$query->set('orderby', 'modified');
$query->set('order', 'DESC'); // 或者 'ASC' 按照升序排序
}
}
只需要将以上代码添加到当前主题的functions.php文件中并保存更新文件即可。
















桂公网安备 45010502000016号