WordPress WP_List_Table nächste Seite gibt immer 0 von ajax-api zurück

Ich verwende WP_List_Table, um meine Liste zu erstellen, und befolge das Tutorial online, um die Seitennummerierung zu erstellen. Die Schaltfläche für die nächste Seite gibt jedoch immer 0 an mich zurück. Versuchen, Hilfe zu bekommen, wie man das funktioniert. Eine Sache zu bemerken ist, dass ich Ajax API verwende, um meine Listentabelle zu erstellen und einen Parameter im Konstruktor der Listentabelle zu haben.

Hier ist mein Code:

classnwechsel-Management-List-Tabellen.php:

 __( 'ChangeManagement', 'vscom_change_management' ), 'plural' => __( 'ChangeManagements', 'vscom_change_management' ) ) ); $this->wpdb = $GLOBALS['wpdb']; $this->intervalFromToday = $intervalFromToday; //$this->msvs_filters = $this->get_filters(); } public function prepare_items(){ $columns = $this->get_columns(); $hidden = array(); $sortable = $this->get_sortable_columns(); $this->_column_headers = array( $columns, $hidden, $sortable ); $per_page = 20; $current_page = $this->get_pagenum(); $this->items = $this->get_data($this->intervalFromToday, $per_page, $current_page ); $this->set_pagination_args( array( 'total_items' => $this->total_items, 'per_page' => $per_page ) ); } public function get_columns() { $columns = array( 'ContentType' =>esc_html__( 'Post Type', 'vscom_change_management' ), 'PageSlugUrl' => esc_html__( 'Page URL', 'vscom_change_management' ), 'PostTitle' => esc_html__( 'Page Title', 'vscom_change_management' ), 'ListOfAuthors' => esc_html__( 'List of Authors', 'vscom_change_management' ), 'DateTime' => esc_html__( 'Timestamp of last operation', 'vscom_change_management' ), 'Languages' => esc_html__( 'Languages', 'vscom_change_management' ), 'UserAction' => esc_html__( 'Operation', 'vscom_change_management' ), ); return $columns; } public function column_default( $item, $column_name ) { if ( isset( $item[ $column_name ] ) ){ return $item[ $column_name ]; } } public function get_data($intervalFromToday, $per_page = 20, $page_number = 1 ){ $change_data_sql = "select changeList.ContentType, changeList.DateTime, changeList.PostTitle, DefaultPostIdperTranslation.DefaultPostId as PostId, changeList.PageSlugUrl, changeList.ListOfAuthors, changeList.UserAction, GROUP_CONCAT(DISTINCT changeList.language_code SEPARATOR ', ') as Languages from (select s.context as ContentType, p.post_name as PageSlugUrl, p.id as PostId, p.post_title as PostTitle, GROUP_CONCAT(DISTINCT u.display_name SEPARATOR ', ') as ListOfAuthors, MAX(s.created) as DateTime, tr.language_code, tr.trid, GROUP_CONCAT(DISTINCT s.action SEPARATOR ', ') as UserAction from {$this->wpdb->prefix}stream as s join {$this->wpdb->prefix}users as u on u.id = s.user_id left join {$this->wpdb->prefix}posts p on p.id = s.object_id left join {$this->wpdb->prefix}icl_translations tr on tr.element_id = s.object_id where p.id IS NOT NULL and connector in ('posts', 'menus', 'xliff') and created >= (CURRENT_DATE - INTERVAL {$intervalFromToday} DAY) and p.post_status !='tao_sc_publish' group by s.object_id) as changeList left join (SELECT MIN(element_id) as DefaultPostId, trid as trid FROM {$this->wpdb->prefix}icl_translations GROUP BY trid ) as DefaultPostIdperTranslation ON changeList.trid = DefaultPostIdperTranslation.trid group by changeList.trid order by DateTime desc"; $change_data = $this->wpdb->get_results( $change_data_sql ); $this->total_items = count($change_data); $change_data_array = array(); foreach($change_data as $change) { $permaUrl = get_permalink($change->PostId); $change->PageSlugUrl = $permaUrl; $change_data_array[] = (array) $change; } return array_slice($change_data_array, (($page_number - 1)*$per_page), $per_page); } } 

Ich habe eine action.php, die die Listentabelle initialisiert und das Datumsintervall in constuctor eingibt:

action.php:

  prepare_items(); echo $change_management_table->display(); } wp_die(); } ?> 

Auf meiner Benutzeroberfläche habe ich eine Dropdown-Liste und einen Ajax-Aufruf:

 
Choose Date Custom Today Yesterday Last 7 Days Last 14 Days Last 30 Days
Past number of days:
Invalid number of days!
(function ( $ ) { var $datePicker = $("#datePickerDropdown"); $datePicker.change(function () { if ($(this).val() === 'custom-date') { $("#dateTextInputs").show(); $("#errorDiv").hide(); } else { $("#dateTextInputs").hide(); } } ); var $submit = $("#date-submit"); $submit.click(function(){ $("#errorDiv").hide(); $(".change-management-results").html(''); var intervalFromCurrentDate; var selectedDate = $datePicker.val(); switch(selectedDate){ case "custom-date": var numberOfDays = $("#numberOfDaysInput").val(); if(!numberOfDays.match(/^\d+$/)){ $("#errorDiv").show(); } else{ intervalFromCurrentDate = numberOfDays; } break; case "today": intervalFromCurrentDate = 0; break; case "yesterday": intervalFromCurrentDate = 1; break; case "last-seven-days": intervalFromCurrentDate = 7; break; case "last-fourteen-days": intervalFromCurrentDate = 14; break; case "last-thirty-days": intervalFromCurrentDate = 30; break; } if(intervalFromCurrentDate || intervalFromCurrentDate === 0){ $("#loadingMask").show(); $.ajax({ url: ajaxurl, data: { action: 'my_change_management', dateInterval: intervalFromCurrentDate}, type: 'POST', success: function(output) { $("#loadingMask").hide(); $(".change-management-results").html(output.toString()); }, error: function(xhr, ajaxOptions, thrownError){ $("#loadingMask").hide(); console.log(xhr.status); console.log(xhr.responseText); console.log(thrownError); } }); } }); })( jQuery );

Wenn ich einen Wert aus der Dropdown-Liste auswähle und den “GO” -Button drücke, wird die erste Seite korrekt geladen. Wenn ich jedoch versuche, auf die zweite zuzugreifen, indem ich auf den rechten Pfeil auf meiner Benutzeroberfläche klicke:

Bildbeschreibung hier eingeben

Es gibt nur einen leeren Bildschirm mit 0 zurück.

Außerdem scheint meine URL der nächsten Seite falsch zu sein:

Bildbeschreibung hier eingeben

Irgendeine Idee, was hier vor sich geht?

Solutions Collecting From Web of "WordPress WP_List_Table nächste Seite gibt immer 0 von ajax-api zurück"