Wie initialisiert man $ wpdb?

Ich habe eine .php-Seite im Thema root, um die Daten eines CUSTOM-Formulars zu überprüfen. Nachdem ich diese Daten erhalten habe, muss ich eine Abfrage in einer benutzerdefinierten mysql-Tabelle machen, also brauche ich $ wpdb, aber ich kann sie nicht direkt verwenden (oder global $wpdb ), weil es eine phische .php-Datei ist, also die Rewrite-Regel wirkt sich nicht auf die Anfrage aus (die Anfrage wird nicht an index.php übergeben, da die Datei existiert).

Also in diesem Fall, wie kann ich ein Objekt $ wpdb erstellen?

Vielen Dank

Solutions Collecting From Web of "Wie initialisiert man $ wpdb?"

Zuallererst haben Sie wahrscheinlich eine isolierte Datei erstellt, die nicht unter dem Dach von WP-Dateien liegt. Deshalb bekommst du $ wpdb nicht. Ich schätze, Sie folgen vielleicht nicht den allgemeinen Regeln / Konventionen der Themenentwicklung. Meine Frage ist nun, wie greifen Sie auf die Datei zu?

was auch immer, wenn Sie die wp_config.php in Ihre Datei einschließen, erhalten Sie die $ wpdb in Ihrer Datei.

Betrachten Sie in einem Verzeichnis unter themes-Verzeichnis, wie Sie die Datei einbeziehen / benötigen

 require_once ('../../../wp-config.php'); 

Möglicherweise müssen Sie den Pfad basierend auf Ihrem System ändern.

 require_once( 'path/to/wordpress/wp-includes/wp-db.php' ); if ( file_exists( 'path/to/wordpress/wp-content/db.php' ) ) require_once( 'path/to/wordpress/wp-content/db.php' ); $wpdb = new wpdb( 'user', 'password', 'database', 'host' ); 

Um zu sehen, wie WordPress es initialisiert, siehe wp-includes / load.php, Zeile 326.

Beachten Sie zuerst, welcher Benutzer HungryCoder sagt, ist richtig: Ihre Datei, ist nicht mit WordPress

Eine mögliche Lösung, die auf Ihrem Entwickler und Linux-Servern funktioniert, ist:

 include( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php'); 

Ausgezeichnete Lösung ist:

 my_wpdb('test','pass', 'database', 'host', '../path/to/wp/'); 

function

 function my_wpdb($user, $pass, $db, $host, $path_to_root= '/../../../../../../', $run_wp_config=true){ $path_to_wp= dirname(__DIR__) .$path_to_root; //execute wp-config, if not run already if($exec_config && !defined('DB_HOST')){ preg_match('/\< \?php(.*?)\/\* That\'s all, stop editing/si', file_get_contents($path_to_root."wp-config.php"), $found); eval($found[1]); } require_once( $path_to_wp.'wp-includes/wp-db.php' ); if ( file_exists($path_to_wp.'wp-content/db.php' ) ) require_once($path_to_wp.'wp-content/db.php' ); return $GLOBALS['wpdb'] = new wpdb( $user, $pass, $db, $host ); }