web-dev-qa-db-fra.com

Récupérer et afficher les données de la table de base de données personnalisée dans la zone d'administration?

Donc, j'ai un problème avec un plugin que je développe, je me demande si quelqu'un peut éclaircir la situation, car beaucoup de recherches sont revenues avec aucune aide. : - /

Fondamentalement, mon plugin crée plusieurs entités personnalisées dans la base de données wordpress, qui fonctionnent toutes correctement. J'ai ajouté une fonction de shortcode pour ajouter un formulaire à une page afin de soumettre des informations, ce qui fonctionne à nouveau correctement.

Mon problème est que, lorsque je souhaite récupérer des données à partir desdites entités personnalisées et les afficher dans la section administrateur de Wordpress (dans un widget de tableau de bord ou une page de plug-in personnalisée), cela ne fonctionne pas. Arrêt complet.

Mon exemple de fonction pour récupérer les données est le suivant:

function showApplicants(){
global $wpdb;

$appTable = $wpdb->prefix . "applications";
    $query = $wpdb->prepare("SELECT * FROM $appTable WHERE %d >= '0'", RID);
    $applications = $wpdb->get_results($query);

    foreach ( $applications as $application ) 
{
echo $application->title . " " . $application->app_firstName . " " . $application->app_surName . "<br/>";
}

}

Étrangement, quand ce code est placé sur une page en dehors de la zone d'administration de WordPress (par exemple, une page créée par WordPress, via une fonction de shortcode (qui produit simplement ce code), ou sur une page que je crée et ajoute moi-même avec ce code dans le modèle), ça marche! Récupérer les informations correctes et les afficher comme prévu.

Ajoutez-le à un widget de tableau de bord, pas de joie. Ajoutez-le à une page personnalisée dans la section admin, encore une fois, pas de joie.

Je suis perplexe. Aucun conseil?

P.S - Pour éviter toute confusion, le $ wpdb global est déclaré plus haut dans le code, donc inutile de le déclarer à nouveau (bien que j’ai essayé de le déclarer à nouveau dans la fonction et que cela ne fonctionnait toujours pas).

Toute aide serait très appréciée!

Ta beaucoup!

1
prettyfly

Code de travail pour l'ajout de widgets au tableau de bord wp avec les informations de la base de données personnalisée:

/**
 * Add application widget to the dashboard.
 */
function addApplicationWidget() {
    wp_add_dashboard_widget(
                 'submitted_applications',         
                 'Submitted Applications',        
                 'showApplicants' 
        );  
}
add_action( 'wp_dashboard_setup', 'addApplicationWidget' );

function showApplicants() {
    global $wpdb;

    $appTable = $wpdb->prefix . "applications";
    $query = $wpdb->prepare("SELECT * FROM $appTable WHERE %d >= '0'", RID);
    $applications = $wpdb->get_results($query);

    foreach ( $applications as $application ) {
        echo $application->title . " " . $application->app_firstName . " " . $application->app_surName . "<br/>";
    }
}
7
prettyfly