我有一个名为clicktripz_object_location
. 我用以下代码创建了一个WP\\u List\\u表;
if(is_admin())
{
new UCO_Wp_List_Table();
}
/**
* UCO_Wp_List_Table class will create the page to load the table
*/
class UCO_Wp_List_Table
{
/**
* Constructor will create the menu item
*/
public function __construct()
{
add_action( \'admin_menu\', array($this, \'add_menu_uco_list_table_page\' ));
}
/**
* Menu item will allow us to load the page to display the table
*/
public function add_menu_uco_list_table_page()
{
add_menu_page( \'Custom UCO\', \'Custom UCO\', \'manage_options\', \'clicktripz-custom-uco.php\', array($this, \'list_table_page\') );
}
/**
* Display the list table page
*
* @return Void
*/
public function list_table_page()
{
$exampleListTable = new UCO_List_Table();
$exampleListTable->prepare_items();
?>
<div class="wrap">
<div id="icon-users" class="icon32"></div>
<h2>Custom UCO</h2>
<?php $exampleListTable->display(); ?>
</div>
<?php
}
}
// WP_List_Table is not loaded automatically so we need to load it in our application
if( ! class_exists( \'WP_List_Table\' ) ) {
require_once( ABSPATH . \'wp-admin/includes/class-wp-list-table.php\' );
}
/**
* Create a new table class that will extend the WP_List_Table
*/
class UCO_List_Table extends WP_List_Table
{
/**
* Prepare the items for the table to process
*
* @return Void
*/
public function prepare_items()
{
$columns = $this->get_columns();
$hidden = $this->get_hidden_columns();
$sortable = $this->get_sortable_columns();
$data = $this->table_data();
usort( $data, array( &$this, \'sort_data\' ) );
$perPage = 2;
$currentPage = $this->get_pagenum();
$totalItems = count($data);
$this->set_pagination_args( array(
\'total_items\' => $totalItems,
\'per_page\' => $perPage
) );
$data = array_slice($data,(($currentPage-1)*$perPage),$perPage);
$this->_column_headers = array($columns, $hidden, $sortable);
$this->items = $data;
}
/**
* Override the parent columns method. Defines the columns to use in your listing table
*
* @return Array
*/
public function get_columns()
{
$columns = array(
\'post_title\' => \'Title\',
\'post_date\' => \'Date\',
\'clicktripz_object_location\' => \'Location\'
);
return $columns;
}
/**
* Define which columns are hidden
*
* @return Array
*/
public function get_hidden_columns()
{
return array();
}
/**
* Define the sortable columns
*
* @return Array
*/
public function get_sortable_columns()
{
$sortable = array(
\'post_title\' => array(\'post_title\', false),
\'post_date\' => array(\'post_date\', false),
);
return $sortable;
}
/**
* Get the table data
*
* @return Array
*/
private function table_data()
{
$post_data = get_posts( array(
numberposts => -1
));
$page_data = get_pages();
$data = array_merge( $post_data, $page_data );
return $data;
}
/**
* Define what data to show on each column of the table
*
* @param Array $item Data
* @param String $column_name - Current column name
*
* @return Mixed
*/
public function column_default( $item, $column_name )
{
switch( $column_name ) {
case \'post_title\':
case \'post_date\':
return $item->$column_name;
case \'clicktripz_object_location\':
return \'<input type="text" value="\'.$item->$column_name.\'">\';
default:
return print_r( $item, true ) ;
}
}
/**
* Allows you to sort the data by the variables set in the $_GET
*
* @return Mixed
*/
private function sort_data( $a, $b )
{
// Set defaults
$orderby = \'post_title\';
$order = \'asc\';
// If orderby is set, use this as the sort column
if(!empty($_GET[\'orderby\']))
{
$orderby = $_GET[\'orderby\'];
}
// If order is set use this as the order
if(!empty($_GET[\'order\']))
{
$order = $_GET[\'order\'];
}
$result = strcmp( $a->$orderby, $b->$orderby );
if($order === \'asc\')
{
return $result;
}
return -$result;
}
}
如您所见,我已将输入框放置到我创建的自定义WP\\U List\\U表中。
但我找不到在页面右下角放置保存按钮的方法。另外,如何创建一个保存函数来一次性保存所有更改?
提前谢谢。