Я пытаюсь сделать нумерацию страниц в таблице списка wp, но она показывает 10 страниц с одинаковыми данными. Когда я пытаюсь использовать $ this-> items = $ this-> data, отображается 10 пустых страниц. Может проблема в неправильном вызове $ this-> query ($ orderby, $ order, $ search)? Мой код:
public function query($orderby = '', $order = '', $search = '')
{
global $wpdb, $user_ID;
$data = array();
$table_name = $wpdb->prefix . 'formularz_rekrutacja';
//$query_form_value = ('SELECT * FROM ' . $table_name.' ORDER BY imie_kandydata ASC');
if (!empty($search)) {
$query_form_value =
('SELECT * FROM ' . $table_name . ' WHERE nazwisko_kandydata LIKE "%' . $search . '%"
OR imie_kandydata LIKE "%' . $search . '%" OR pesel LIKE "%' . $search . '%" ');
} else {
if ($orderby == 'Imię' && $order = 'asc') {
$query_form_value = ('SELECT * FROM ' . $table_name . ' ORDER BY imie_kandydata ASC');
} elseif ($orderby == 'Nazwisko' && $order = 'asc') {
$query_form_value = ('SELECT * FROM ' . $table_name . ' ORDER BY nazwisko_kandydata ASC');
} elseif ($orderby == 'Nazwisko' && $order = 'asc') {
$query_form_value = ('SELECT * FROM ' . $table_name . ' ORDER BY nazwisko_kandydata DESC');
} elseif ($orderby == 'Imię' && $order = 'desc') {
$query_form_value = ('SELECT * FROM ' . $table_name . ' ORDER BY imie_kandydata DESC');
} else {
$query_form_value = ('SELECT * FROM ' . $table_name . ' ORDER BY data_wygenerowania ASC');
}
}
$lists = $wpdb->get_results($query_form_value);
foreach ($lists as $list) {
$data[] =
array(
'ID' => $list->id,
'bla' => $list->name,
'blabla' => $list->first_name,
);
}
return $data;
//print_r($data);
public function prepare_items()
{
$per_page = 10;
$current_page = $this->get_pagenum();
$total_items = count($this->query($query_form_value));
// only ncessary because we have sample data
$this->found_data = array_slice($this->query($query_form_value),(($current_page-1)*$per_page),$per_page);
$this->set_pagination_args( array(
'total_items' => $total_items, //WE have to calculate the total number of items
'per_page' => $per_page //WE have to determine how many items to show on a page
) );
$this->items = $this->found_data;
$orderby = isset($_GET['orderby']) ? trim($_GET['orderby']) : "";
$order = isset($_GET['order']) ? trim($_GET['order']) : "";
$search = isset($_POST['s']) ? trim($_POST['s']) : "";
$this->items = $this->query($orderby, $order, $search);
$columns = $this->get_columns();
$hidden = $this->get_hidden_columns();
$sortable = $this->get_sortable_columns();
$this->_column_headers = array($columns, $hidden, $sortable);
}
кстати. Моя сортировка также не работает должным образом, сортировка только по первому щелчку всегда по возрастанию