Ondersteuning » Algemeen WordPress » WP database benaderen

  • Ik zit met het volgende probleem.
    Ik heb een scriptje geschreven dat wat data in een eigen tabel in de WP database moet schrijven en lezen. Op zich staat het los van de WP installatie (ik kan geen plugins of widgets schrijven, dus vandaar is het helemaal ‘standalone’)

    Ik heb de tabel handmatig aangemaakt via PhpMyadmin. Als ik de database op de ‘normale’ manier wil benaderen (MySql_connect, MySql_query etc) dan krijg ik de foutmelding dat ik geen toegang heb tot de database. Nou ja, die is in gebruik door WP, dus daar kan ik me wel wat bij voorstellen.

    maar hoe doe ik het dan?
    Na wat zoeken kwam ik deze pagina tegen, met uitleg over een handige classe die ik zou kunnen gebruiken, maar dan moet ik eerst een object zien te instantieren. Het $wpdb object kan ik niet gebruiken omdat het hele script in feite los staat van WP. Maar welke library moet ik dan includen om zelf een object te instantieren?

    Of misschien is er een totaal andere oplossing?
    Ik zie door de WP bomen het database bos even niet meer 😉

3 reacties aan het bekijken - 1 tot 3 (van in totaal 3)
  • Je zou het $wpdb object kunnen aanroepen door een functie te schrijven in je functions.php. Ook kan je een eigen (tijdelijke) plugin schrijven die specifiek voor dit doel is bedoelt.

    Een plugin schrijven is niet zo heel moeilijk, dus je kan het best proberen.

    Thread starter Gooly

    (@gooly)

    Bedankt!
    Ik zou het dolgraag in een plugin doen, want dat is het in feite ook.

    (Personen kunnen zich online aanmelden voor een evenement door een formulier in te vullen. Dat gaat rechtstreeks naar de database, maar in eerste instantie nog met een ‘approved’: false. Een moderator kan dat naar true veranderen, en vanaf dat moment wordt de naam van de persoon op de website in een lijst van deelnemers gepubliceert.)

    Ik vind het zeker de moeite waard op plugins te gaan leren schrijven en dat ga ik ook zeker doen. Maar in dit geval is het punt dat deze ‘feature’ a.s. maandag in de website moet zitten en ik met de situatie zit: Het is al klaar, maar ik krijg het niet in de website/Wordpress geimplementeerd.

    Over functions.php
    Bedoel je dat ik mijn database acties m.b.v. $wpdb in functions.php kan zetten in een eigen functie, vervolgens functions.php kan includen in mijn eigen script en zodoende de functie binnen mijn script kan gebruiken?

    Thread starter Gooly

    (@gooly)

    Om te testen heb ik dit nu in mijn functions.php gezet:

    function DBinsert($sql)
    {
     $wpdb->insert( 'wp_renners', array( 'achternaam' => 'Jansen', 'voornaam' => 'Piet' ) );
    }

    Ik heb functions.php in mijn script ge-include en ik roep de functie in mijn script aan met: DBinsert(“niks”)

    Toch levert me dat een “Fatal error: Call to a member function insert() on a non-object” op. Ik moet het object dus nog ergens ‘vandaan halen’ of zelf instantieren.

3 reacties aan het bekijken - 1 tot 3 (van in totaal 3)
  • Het onderwerp ‘WP database benaderen’ is gesloten voor nieuwe reacties.