$wpdb in Plugin nicht verwendbar

  • Hallo zusammen,

    ich bin ziemlicher Anfänger in der Pluginentwicklung, versuche aber z.Z. ein Plugin zur Terminverwaltung für unseren Verein zu erstellen, welches individuell auf unsere Bedürfnisse angepasst wird.

    Dazu habe ich bisher eine Backend-Menu-Page mit diversen Unterseiten erstellt.
    Unter Anderem eine Seite, wo alle Termine aufgelistet und in einer Tabelle angezeigt werden.
    In dieser Tabelle gibt es einige Actions (anzeigen, bearbeiten, löschen).

    Klickt man nun auf "anzeigen", so öffnet sich eine Thickbox, die auf eine neue Datei verweist.
    So weit, so gut - das klappt auch alles :)

    Ich übergebe dort mehrere Parameter, welche dann per $_GET[..] in der Datei verarbeitet werden sollen.
    Ein Parameter ist dabei die Event-ID, die natürlich für jedes Event individuell ist.

    Mit dieser Event-ID möchte ich nun alle Benutzer, die in meiner Datenbank-Tabelle für das besagte Event stehen, ausgeben.

    Mein Problem nun ist, dass ich keinen Zugriff auf $wpdb habe/bekomme.
    Muss ich irgendwelche Dateien explizit einbinden, oder muss ich meine Seite, auf die weitergeleitet wird und in der die Ausgabe der Benutzer erfolgen soll irgendwo einbinden?? Da stehe ich momentan ziemlich auf dem Schlauch:sad:


    Hier einmal der Quellcode, wo meine Thickbox getriggert wird und auf die externe .php weitergeleitet wird:

    PHP
    function column_description($item) {   
       $dirname = plugins_url('includes/event-manipulation.php/', dirname(__FILE__));
       $actions = array( 'show' => sprintf('<a href="' . $dirname . '?    &action=%s&event=%s&width=600&height=550" class="thickbox">Anzeigen</a>', 'show', $item['ID']),
       .........    
    }

    Der Inhalt meiner Seite "event-manipulation.php" sieht folgendermaßen aus:

    Meine Fehlermeldung, die ich bekomme sieht beim Ausführen so aus:

    Code
    [B]Notice: Trying to get property of non-object inC:\xampp\htdocs\wordpress\wp-content\plugins\jbsorganizer\includes\event-manipulation.php on line 8
    
    
    Fatal error: Call to a member function get_row() on null in C:\xampp\htdocs\wordpress\wp-content\plugins\jbsorganizer\includes\event-manipulation.php on line 11[/B]

    Vermutlich ist das ein total banaler Fehler :smile:
    In der Hoffnung, dass jemand von Euch mir helfen kann

    Gruß
    Jakob

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • auf Anhieb fällt mir auf, dass du einmal get_Eventdescription($event_id) schreibst und weiter unten get_Eventdescription($eventid).

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Jawollek - 100%ig!!
    Genau das hat mir gefehlt.
    Mit dem Einbinden der Dateien "wp-config" und "wp-db" klappts und ich bekomme die Beschreibung aus der DB - wunderbar! (y)

    Die andere Seite werde ich mir trotzdem mal ansehen.

    Danke :)

  • Wenn ich das richtig sehe, rufst Du die event-manipulation.php direkt auf. Da fehlt dann natürlich alles, was Wordpress beim Start normalerweise lädt.
    Um Wordpress in PHP-Dateien zu verwenden, muß es natürlich eingebunden werden. Das geht normalerweise so:
    http://codex.wordpress.org/Integrating_Wo…th_Your_Website

    Wobei das eher für PHP-Dateien außerhalb von Wordpress gilt.

    Beim Plugins solltest Du besser die Plugin-Datei selbst verwenden (die ist schon in WP eingebunden) und dann z.B. über die Parameter verzweigen.

    Nachtrag: Da war SirEctor schneller :-)

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Das hört sich danach an, dass keine Ergebnis existiert, also entweder keine Event ID übergeben wurde oder zur die Event ID kein Ergebnis bzw keine Description existiert. Daher die NULL Meldung.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • wie bereits erwähnt, bestand mein Problem darin, dass ich die WP-Dateien erst einbinden musste, um auf die Funktionen und Klassen, die benötigt werden zugreifen zu können, was mittels des Weges von @SirEctor wunderbar funktioniert hat.

    @mensmaximus
    Ergebnisse waren da, allerdings hatte das $wpdb-Object einen NULL-Status, wegen der besagten, fehlenden Dateien. Trotzdem danke für den Ansatz :-)


    EDIT
    Thema kann geschlossen werden.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!