Schwerwiegender Fehler: Aufruf zu undefinierter function wp_insert_post ()

Also habe ich ein Formular, das die Aktion zu einer anderen PHP-Seite springen lässt.

Dort versucht mein PHP-Code einen Beitrag hochzuladen. Ich erhalte den folgenden Fehler:

Schwerwiegender Fehler: Aufruf zu undefinierter function wp_insert_post ()

PHP-Code:

ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "upload_ugc") { if($_POST["editindication"] == 'newpost'){ $post_array = array( 'post_title' => $_POST["post_title"], 'post_content' => '', ); $post_id = wp_insert_post( $post_array, true ); } 

Solutions Collecting From Web of "Schwerwiegender Fehler: Aufruf zu undefinierter function wp_insert_post ()"

Wenn Sie WordPress-functionen in Ihrer nackten PHP-Datei verwenden möchten, müssen Sie die WordPress-Umgebung laden:

 require_once '/path/to/wp-load.php'; 

Das heißt, es ist die beste Vorgehensweise, Dinge nicht über separate PHP-Dateien wie die außerhalb von WordPress zu behandeln, sondern stattdessen ein Plugin zu verwenden und den Code mit einer geeigneten Aktion zu starten. Sie können eine Seitenvorlage oder einen Shortcode zum Rendern Ihres Formulars verwenden und dann die Formulareingabe auf dem init oder template_redirect Hook in einem Plug-in abfangen:

 add_action( 'init', function() { if ( empty( $_POST['action'] ) || $_POST['action'] != 'upload_ugc' ) return; // Your wp_insert_post statement wp_redirect( home_url( '/upload-success/' ) ); die(); }); 

Wenn Sie mit Benutzereingaben arbeiten, vergessen Sie nicht die Sicherheit, insbesondere für eingeloggte Benutzer. In Ihrem Fall benötigen Sie mindestens ein wp_nonce_field und führen Ihren Titel und Inhalt wahrscheinlich über wp_kses aus .