web-dev-qa-db-fra.com

Wp List Table - Les résultats de wpdb ne s'affichent pas

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:

 Results 

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.

1
Nikita
$data = $wpdb->get_results($sql, ARRAY_A);

L'ajout de ARRAY_A force get_results() à renvoyer un tableau associatif.

1
Nikita