Je suis un débutant, je wordpress dev. Donc, je veux afficher un résultat, tiré de la table de base de données wordpress personnalisée. Alors j'ai écrit ceci:
if( ! class_exists( 'WP_List_Table' ) ) {
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
}
class Q_List_Table extends WP_List_Table {
public function __construct() {
parent::__construct( array(
'singular' => 'test',
'plural' => 'tests',
'ajax' => false
));
$this->prepare_items();
$this->display();
}
function get_columns() {
$columns = array(
'id' => 'ID',
'subject' => 'Title',
'name' => 'Username',
'date' => 'Posted on'
);
return $columns;
}
function column_default( $item, $column_name ) {
switch( $column_name ) {
case 'id':
case 'subject':
case 'name':
case 'date':
return $item[ $column_name ];
default:
return print_r( $item, true ) ;
}
}
function prepare_items() {
global $wpdb;
$sql = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->prefix}fenq_questions"));
$columns = $this->get_columns();
$hidden = array();
$sortable = $this->get_sortable_columns();
$this->_column_headers = array($columns, $hidden, $sortable);
var_dump($sql);
$this->items = $sql;
}
}
class FenQuestingAdmin{
function display(){
error_reporting(E_ALL);
//admin all questions template
?>
<div class="wrap">
<h2><?php _e('FenQuesting Settings','fenquesting-slug'); ?></h2>
<?php
new Q_List_Table();
?>
</div>
<?php
}
}
La fonction d'affichage de la classe FenQuestingAdmin est liée au fichier principal et définie comme une fonction pour la page d'administration ...
Donc, ce code donne ce résultat:
Lorsque j'utilise un exemple de tableau construit par moi-même, le problème est 0, mais l'objectif principal est d'afficher le tableau, tiré de db.
Merci pour votre aide!
P.S. J'ai essayé de changer tous les objets en tableaux, cela ne change pas la situation.
$data = $wpdb->get_results($sql, ARRAY_A);
L'ajout de ARRAY_A
force get_results()
à renvoyer un tableau associatif.