WordPress给后台表格增加删除列

追格官方小助手/ 2022年12月10日/ WordPress/ 浏览 1802

WordPress的后台有各种各样的表格。在开发WordPress插件或WordPress主题时,有时候我们也希望对这些表格进行改造,增加显示自己需要的数据,或者删除不必要的列。


该怎么办呢?WordPress 早就为我们准备好了!


比如,希望在用户列表中增加【生日】一列:


//增加一列
function custom_add_user_id_column($columns) {
    $columns['birthday'] = '生日';
    return $columns;
}
add_filter('manage_users_columns', 'custom_add_user_id_column');

//给增加的列合适的值
function custom_show_user_id_column_content($value, $column_name, $user_id) {
    if ( 'birthday' == $column_name )
        return '某年某月某日';
    return $value;
}
add_filter('manage_users_custom_column',  'custom_show_user_id_column_content', 10, 3);


类似的,给文章列表增加一列:


// 是否 置顶 的表格值
function display_posts_stickiness( $column, $post_id ) {
    if ($column == 'sticky'){
        echo '<input type="checkbox" disabled', ( is_sticky( $post_id ) ? ' checked' : ''), '/>';
    }
}
add_action( 'manage_posts_custom_column' , 'display_posts_stickiness', 10, 2 );

// 增加一列 置顶
function add_sticky_column( $columns ) {
    return array_merge( $columns, 
        array( 'sticky' => __( 'Sticky', 'your_text_domain' ) ) );
}
add_filter( 'manage_posts_columns' , 'add_sticky_column' );


给用户增加列和给文章增加列,有一个细微的差别,文章用了 add_action,用户用了 add_filter。经过查看文档及源码,确实如此,也搞不清楚为什么会有这个差别…… 不过实践中,用户列表增加列使用 add_action 也是有效的……


除此之外,还有各种类似的函数:


manage_link_columns

manage_link_custom_column


manage_media_columns

manage_media_custom_column


manage_pages_columns

manage_pages_custom_column


manage_sites_columns

manage_sites_custom_column


manage_themes_columns

manage_themes_custom_column


manage_plugins_columns

manage_plugins_custom_column


manage_comments_columns

manage_comments_custom_column


manage_{$this->screen->id}_custom_column

manage_{$post->post_type}_posts_custom_column

manage_{$this->screen->taxonomy}_custom_column

manage_{$this->screen->id}_custom_column_js_template


总之,利用这些函数,想改造任何列表都是可以的。


发表评论

暂无评论,抢个沙发...

客服 工单