web-dev-qa-db-de.com

Erstellen Sie einen Beitrag mit dem JSON-API-Plugin

Ich arbeite an einem Projekt, bei dem der Benutzer seinen Inhalt in einem WordPress-Blog schreibt (als Entwurf), ihn aber auf seiner eigenen WordPress-Blog-Site veröffentlichen möchte.

Dies scheint seltsam, aber es ist das Kernkonzept für das Geschäft, da die Autoren zusammenarbeiten und das nun geändert werden kann.

Ich habe das JSON-API-Plugin installiert. (Ich bin völlig neu bei Api und noch im ersten Jahr von PHP).

Ich frage mich 1. Wie würden Sie die json-Informationen von Site A verwenden, um einen Beitrag für Site B zu erstellen?.

Bisher habe ich es wie folgt konzipiert.

  1. das Plugin (auf Site B) ruft die JSON-Informationen von Site A ab
  2. das Plugin nimmt dann den json und verwandelt ihn in ein Array (versucht, so viel davon zuzuordnen, um Informationen zu posten).
  3. dann fügt das Plugin die Posts in die Post-DB von Site B ein. (Ich dachte, dies würde es am schnellsten machen, da dies etwas ist, was Twitter macht, mit Ausnahme der Daten, die auf Ihrem Telefon/Computer gespeichert sind. ??)
  4. Die Posts funktionieren so, als ob sie auf Site B erstellt wurden (d. H. Sie folgen den Regeln des Themas auf Site B).

Bisher hat jeder Versuch, den ich unternommen habe, um zu googeln und es alleine zu tun, zu einem schrecklichen, schrecklichen Misserfolg geführt. (Ich bin wegen meines hohen Leistungsbedarfs noch nicht auf mein Schwert gefallen.)

Der erste Versuch war:

$response = wp_remote_get('urlhere/?json=get_post&post_id=120');
//$my_post = array($keys as $values);

wp_insert_post($response, $wp_error);

Jedoch ... keine Ergebnisse (Ich habe die URL angegeben, um eine universellere Antwort zu erstellen und mich nicht nur auf die URL der eigentlichen Website zu konzentrieren.

// Create post object
$my_post_test = array(
  'post_title'    => "Hi this is a title!" ,
  'post_content'  => "This is a test",
  'post_status'   => 'publish',
  'post_author'   => 1,
  //'post_category' => array( 8,39 )
);

// Insert the post into the database
wp_insert_post( $my_post_test, $wp_error );

Zweite Ausgabe: Dieser Code erzeugt 4-8 Posts mit dem gleichen Titel (scheint seltsam?)

Meine Fragen sind: 1. Was ist die beste Möglichkeit, den Prozess so zu konzipieren, dass er relativ skalierbar ist (d. H. 20-1.000 Autoren). 2. Wie würde ich das JSON-API-Plugin dazu bringen, die Daten in eine WordPress-Postleitzahl einzufügen?

1
Cody

Ich habe an JSON API für eine iPhone App-Entwicklung für eine WordPress-Site gearbeitet, um Fotos zu posten, aber nicht mit JSON API Plugin .

Die grundlegende Vorgehensweise wäre jedoch: Da Sie angemeldet sein müssen, um Ihren Beitrag zu veröffentlichen, erfolgt die Kommunikation in beide Richtungen
1. Autor schreibt einen Artikel als Entwurf auf Seite A.
2. Es gibt einen Link oder eine Schaltfläche zum Initiieren einer JSON-Anforderung zum Anmelden an Site B. Sie erhalten ein Token, wenn die Anmeldung erfolgreich war.
3. Sie senden eine weitere JSON-Anfrage, wenn Sie ein Token erhalten, mit Token und senden Daten an Site B.
4. Wenn alle Daten gültig sind, veröffentlicht Site B den Post und gibt Ihnen die POST ID zurück
5. Sie können die Beitrags-IDs für den Datensatz speichern.

Hierfür müssten Sie die ordnungsgemäße Sicherheit überprüfen. Außerdem kann Site B einen neuen Beitrag nicht automatisch von Site A abrufen, wie Sie in Ihrem ersten Punkt gesagt haben, da es erforderlich ist, ihm mitzuteilen, wann die Informationen abgerufen werden sollen.

Es könnte einen besseren Ansatz geben, den ich nicht kenne, aber Sie müssen dafür ein benutzerdefiniertes Plugin erstellen.

0
sven