You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程方式在WordPress后台自定义页面添加自定义列

自定义后台页面添加自定义列实现方案

你当前提供的代码是专门用于WordPress默认用户管理列表新增列的实现,要适配自定义后台页面的需求,需要根据你自定义页面的类型调整对应钩子和逻辑,分两种常见场景给出实现方案:


场景1:自定义文章类型的后台列表页

如果你的自定义页面是注册的自定义文章类型(比如slug为book),直接把用户列表的钩子替换为对应文章类型的专属钩子,同时补充列内容渲染逻辑即可,示例代码如下:

// 给自定义文章类型列表注册自定义列
function custom_post_add_columns( $columns ) {
    // 键名为自定义列的唯一标识,值为列显示的标题
    $columns['custom_column_slug'] = '自定义列标题';
    return $columns;
}
// 把下方的book替换为你自己的自定义文章类型slug
add_filter( 'manage_book_posts_columns', 'custom_post_add_columns' );

// 渲染每一行自定义列的内容
function custom_post_render_column( $column, $post_id ) {
    if ( $column === 'custom_column_slug' ) {
        // 这里写你要输出的内容逻辑,比如输出对应文章的自定义字段值
        echo get_post_meta( $post_id, '你的自定义字段key', true );
    }
}
add_action( 'manage_book_posts_custom_column', 'custom_post_render_column', 10, 2 );

你原代码中的user_contactmethods钩子是用于给用户个人资料页新增联系方式字段的,如果你的自定义列不需要关联用户联系方式,这段逻辑可以直接删除。


场景2:完全自主开发的自定义后台页面

如果是通过add_menu_page/add_submenu_page注册的完全自定义后台页面,分两种情况处理:

  • 自己手写HTML渲染列表:直接在列表<thead>中添加对应<th>列标题,在<tbody>循环输出行数据时,对应添加<td>输出列内容即可,不需要用WordPress内置钩子。
  • 用WordPress内置WP_List_Table类开发列表:需要重写类的get_columns()方法注册自定义列,同时重写column_{自定义列标识}()方法渲染列内容,核心代码片段参考:
// 继承WP_List_Table类后重写get_columns方法注册列
function get_columns() {
    $columns = [
        'cb' => '<input type="checkbox" />',
        'title' => '标题',
        'custom_column' => '自定义列' // 新增自定义列
    ];
    return $columns;
}

// 重写自定义列的渲染方法
function column_custom_column( $item ) {
    // $item为当前行的数据,这里输出对应内容即可
    return $item['custom_field_value'];
}

内容的提问来源于stack exchange,提问作者HafizHamzaCS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:45:05