Ich entwickle ein Plugin, bei dem ich die Klasse WP_List_Table erweitern musste. Ich habe die Klasse in meinem Plugin-Datei erweitert (ich weiß nicht, ob dies der richtige Weg ist, dies zu tun?) Und enthalten WP_List_Table wie folgt aus:Aufruf zu undefinierter Funktion convert_to_screen()
if(!class_exists('WP_List_Table')){
require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
}
dann den Code kommt die Klasse für die Verlängerung und dann ich mache eine Instanz von meinem Tisch Klasse wie folgt erstellen:
<?php
if (! class_exists('WP_List_Table')) {
require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
}
Class Wp_Ban_User extends WP_List_Table
{
public function __construct()
{
add_action('admin_menu',array($this,'WBU_adminMenu'));
parent::__construct(array(
'singular'=> 'wp_list_text_link', //Singular label
'plural' => 'wp_list_test_links', //plural label, also this well be one of the table css class
'ajax' => false //We won't support Ajax for this table
));
$this->prepare_items();
$this->display();
}
function get_columns() {
$columns = array(
'id' => 'ID',
'user_login' => 'User Name',
'user_email' => 'User Email'
);
return $columns;
}
function column_default($item, $column_name) {
switch($column_name) {
case 'id':
case 'user_login':
case 'user_email':
return $item[ $column_name ];
default:
return print_r($item, true) ;
}
}
function prepare_items() {
$example_data = array(
array(
'id' => 1,
'user_login' => 'vasim',
'user_email' => '[email protected]'
),
array(
'id' => 2,
'user_login' => 'Asma',
'user_email' => '[email protected]'
),
array(
'id' => 3,
'user_login' => 'Nehal',
'user_email' => '[email protected]'
),
);
$columns = $this->get_columns();
$hidden = array();
$sortable = $this->get_sortable_columns();
$this->_column_headers = array($columns, $hidden, $sortable);
$this->items = $example_data;
}
public function WBU_adminMenu()
{
add_menu_page('Currently Logged In User', 'Banned User', 'manage_options', 'ban_admin_init', array($this,'ban_admin_init'));
}
function ban_admin_init(){
global $wpdb;
$sql="SELECT * from {$wpdb->prefix}users";
$sql_result=$wpdb->get_results($sql,'ARRAY_A');
print_r($sql_result);
//$this->items=$sql_result;
}
}
global $Obj_Wp_Ban_User;
$Obj_Wp_Ban_User=new Wp_Ban_User();
aber wenn ich dies tun, ich tun, um diese Fehlermeldung erhalten:
Fatal error: Call to undefined function convert_to_screen() in D:\xampp\htdocs\developplugin\wp-admin\includes\class-wp-list-table.php on line 143
ich tat etwas Forschung, aber nicht verstehen, wie es zu beheben .
Weiß jemand, wie man das repariert?
Danke für Ihre Hilfe!
Mit freundlichen Grüßen.
versuchen 'add_action ('admin_menu', array ($ this, 'WBU_adminMenu')) zu entfernen;' von Konstruktor –
Ihre Klasse instanziiert wird, bevor Wordpress die notwendigen Bibliotheken geladen ist. – Devon
@ShravanShrama Entfernt immer noch denselben Fehler –