webentwicklung-frage-antwort-db.com.de

Daten aus der benutzerdefinierten DB-Tabelle im Admin-Bereich abrufen und anzeigen?

Also, ich habe ein kleines Problem mit einem Plugin, das ich gerade entwickle. Ich frage mich, ob irgendjemand Licht in die Situation bringen kann, da viele, VIELE Suchanfragen ohne Hilfe zurückgekommen sind. : - /

Grundsätzlich erstellt mein Plugin mehrere benutzerdefinierte Entitäten in der WordPress-Datenbank, die alle einwandfrei funktionieren. Ich habe eine Shortcode-Funktion hinzugefügt, um einer Seite ein Formular zum Übermitteln von Informationen hinzuzufügen, was wiederum einwandfrei funktioniert.

Mein Problem ist, wenn ich Daten von diesen benutzerdefinierten Entitäten abrufen und im Admin-Bereich von Wordpress anzeigen möchte (entweder in einem Dashboard-Widget oder auf einer benutzerdefinierten Plug-in-Seite), funktioniert dies nicht. Punkt.

Meine Beispielfunktion zum Abrufen der Daten lautet wie folgt:

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/>";
}

}

Seltsamerweise, wenn dieser Code auf einer Seite außerhalb des WordPress-Administrationsbereichs abgelegt wird (zum Beispiel auf einer von WordPress erstellten Seite, über eine Shortcode-Funktion (die einfach diesen Code ausgibt) oder auf einer Seite, die ich selbst mit diesem Code erstelle und hinzufüge in der Vorlage) funktioniert es! Die richtigen Informationen abrufen und wie erwartet anzeigen.

Fügen Sie es zu einem Dashboard-Widget hinzu, keine Freude. Füge es zu einer benutzerdefinierten Seite im Admin-Bereich hinzu, wieder keine Freude.

Ich bin ratlos. Irgendein Rat?

P.S - Um Verwirrung zu vermeiden, wird das $ wpdb global weiter oben im Code deklariert, sodass es nicht erneut deklariert werden muss (obwohl ich versucht habe, es innerhalb der Funktion erneut zu deklarieren, und es hat immer noch nicht funktioniert).

Jede Hilfe wäre sehr dankbar!

Ta mucho!

1
prettyfly

Arbeitscode zum Hinzufügen eines Widgets zum WP-Dashboard mit Informationen aus der benutzerdefinierten Datenbank:

/**
 * 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