首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在WP_List_Table上保存自定义字段

是指在WordPress后台的列表页面中,自定义添加一列字段,并在该列中显示自定义数据,并且将这些自定义数据保存到数据库中以便后续使用。

实现在WP_List_Table上保存自定义字段的步骤如下:

  1. 首先,我们需要创建一个自定义的WP_List_Table类。这个类需要继承自WP_List_Table,并实现必要的方法,如构造函数、列定义、行数据获取等。
  2. 在列定义方法(get_columns)中,我们可以添加一个自定义列,定义该列的标题和数据库存储字段名称。
  3. 在行数据获取方法(prepare_items)中,我们可以获取需要显示的数据,并将其保存在一个类变量中,以便后续使用。
  4. 在显示数据方法(column_default)中,我们可以根据需要处理和显示自定义字段的内容。
  5. 在保存数据方法(process_bulk_action)中,我们可以获取用户对自定义字段的修改,并将其保存到数据库中。

具体代码示例:

代码语言:txt
复制
class Custom_WP_List_Table extends WP_List_Table {
    // 构造函数
    public function __construct() {
        parent::__construct(array(
            'singular' => 'custom_item',
            'plural' => 'custom_items',
            'ajax' => false
        ));
    }

    // 列定义
    public function get_columns() {
        $columns = array(
            'cb' => '<input type="checkbox" />',
            'title' => 'Title',
            'custom_field' => 'Custom Field'
        );
        return $columns;
    }

    // 行数据获取
    public function prepare_items() {
        global $wpdb;
        
        $per_page = 20;
        $current_page = $this->get_pagenum();
        $total_items = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}posts");

        $this->set_pagination_args(array(
            'total_items' => $total_items,
            'per_page' => $per_page
        ));

        $this->items = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}posts LIMIT $per_page OFFSET " . (($current_page-1)*$per_page), ARRAY_A);
    }

    // 显示数据
    public function column_default($item, $column_name) {
        switch ($column_name) {
            case 'custom_field':
                return get_post_meta($item['ID'], 'custom_field', true);
            default:
                return $item[$column_name];
        }
    }

    // 保存数据
    public function process_bulk_action() {
        if ('save_custom_field' === $this->current_action()) {
            $custom_field = sanitize_text_field($_REQUEST['custom_field']);
            $post_id = intval($_REQUEST['post_id']);

            update_post_meta($post_id, 'custom_field', $custom_field);
        }
    }
}

使用这个自定义WP_List_Table类可以在WordPress后台的列表页面中添加并保存自定义字段。通过重写相应的方法,我们可以根据实际需求定制字段的显示和保存逻辑。

这里推荐使用腾讯云的WordPress托管服务,详情请参考:腾讯云WordPress托管

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

33分17秒

052-直播间模块-直播带货后台系统4

11分46秒

042.json序列化为什么要使用tag

1分58秒

腾讯千帆河洛场景连接-维格表&企微自动发起审批配置教程

18分41秒

041.go的结构体的json序列化

14分30秒

Percona pt-archiver重构版--大表数据归档工具

1分19秒

如何在浏览器Web前端在线编辑PPT幻灯片?

11分59秒

跨平台、无隐私追踪的开源输入法Rime定制指南: 聪明的输入法懂我心意!

26分40秒

晓兵技术杂谈2-intel_daos用户态文件系统io路径_dfuse_io全路径_io栈_c语言

3.4K
5分33秒

JSP 在线学习系统myeclipse开发mysql数据库web结构java编程

领券