首页
学习
活动
专区
工具
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托管

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

相关·内容

没有搜到相关的合辑

领券