Erstellen Sie WordPress-Posts aus dem JSON-Array mit dem Plugin admin

Ich schreibe ein WordPress-Plugin, das ich gerne machen würde:

  1. Fügen Sie eine WordPress-Plugin-Admin-Seite hinzu, die eine Schaltfläche enthält
  2. Wenn Sie auf die Schaltfläche klicken, wird ein Array von JSON-Objekten aus einer Datei geladen und anschließend ein WordPress-Post für jedes Objekt erstellt

Ich habe # 1 gemacht, und ich kann das Array von JSON-Objekten sehen, die beim Klicken auf die Schaltfläche console.log da ich console.log . (Ich habe den Button mit diesem Tutorial erstellt – verwendet AJAX.)

Aber wie würde ich WordPress Zugriff auf das JSON-Array geben, damit ich Posts mit wp_insert_posts erstellen wp_insert_posts ? Ist das überhaupt möglich?

Solutions Collecting From Web of "Erstellen Sie WordPress-Posts aus dem JSON-Array mit dem Plugin admin"

Hier nehme ich an, dass Ihr json ein Array von Objekten ist, deren Eigenschaften wie wp_insert_post Argumente benannt sind : “post_title”, “post_content” und so weiter.

 function process_ajax() { if ( ! isset($_POST['nonce']) || ! wp_verify_nonce($_POST['nonce'], 'mynonce') ) die('error on checking nonce'); if ( ! isset($_POST['filepath']) die('no file given'); if ( ! file_exists($_POST['filepath']) ) die('invalid file given'); $posts = json_decode( file_get_contents($_POST['filepath']) ); $done = 0; if ($posts) { foreach ( $posts as $post) { $post = (array)$post; if ( isset($post['ID']) ) unset($post['ID']); if ( wp_insert_post($post) ) $done++; } $str = "Successfully insert " . $done . "posts, "; $str .= ( count($posts) - $done ) . ' failed.' die($str); } else { die('File contains not valid Json.'); } }