是指在WordPress后台的列表页面中,自定义添加一列字段,并在该列中显示自定义数据,并且将这些自定义数据保存到数据库中以便后续使用。
实现在WP_List_Table上保存自定义字段的步骤如下:
具体代码示例:
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托管。
领取专属 10元无门槛券
手把手带您无忧上云