webentwicklung-frage-antwort-db.com.de

Synchronisieren Sie Posts von einer WordPress-Site zu einer anderen

Ich möchte folgendes erreichen:

Ich habe 2 WordPress-Sites auf verschiedenen Servern gehostet. Nennen wir A als Absender und B als Empfänger. Wann immer ich einen Beitrag in A hinzufüge/aktualisiere/lösche, sollte er sich wie in B widerspiegeln. Nicht nur die Beitragsdaten, sondern auch die Taxonomien und benutzerdefinierten Felder sollten in B ordnungsgemäß aktualisiert werden.

Ich habe die WordPress REST -API überprüft, aber ich bevorzuge sie nicht, da sie nur einen JSON-Feed für A enthält, für den ich eine Pull-Anfrage von B senden kann. Angenommen, heute gibt es 10 Blogs, morgen können es 100 Blogs usw. sein. Nach meinem Verständnis ist es also nicht am besten für meine Anforderungen geeignet.

Ein weiterer Ansatz, den ich wahrscheinlich verfolgen möchte, ist das Hinzufügen einer Funktion in A zum Senden einer Fernanforderung an B, und B sollte Endpunkte bereithalten.

Z.B. Wenn ich einen Endpunkt an B-Site erstelle, sagen Sie 'update_post' und senden Sie eine Anfrage von A an einen Hook. Senden Sie wie bei der Aktion "Beitrag speichern" eine Anforderung an den Endpunkt "update_post", der auf B verfügbar ist. Anschließend erstellt B einen Beitrag mit den von A empfangenen Beitragsdaten. Die ID des Beitrags wäre in B anders als in A für diesen Beitrag Speichern Sie die von A erhaltene ID im Post-Meta des in B erstellten Posts und bearbeiten Sie dann auf dieser Beziehungsbasis Aktivitäten wie Aktualisieren, Löschen usw. in Zukunft. Beim Update muss ich mich auch um Postmeta, Kategorie/Tags und empfohlene Bildaktualisierungen kümmern.

Was ich jetzt möchte, ist, Endpunkte zu erstellen -

Wenn ich einen Endpunkt wie http://example.com/insert_post erstelle, muss ich eine externe PHP Datei erstellen, in der keine WordPress-Funktionen verfügbar sind und ich denke, dass ich zum Laden von WordPress wp-load.php verwende ist keine gute Idee. Ich möchte dies also nur in WordPress erreichen.

Ich recherchierte und fand diese Funktion http://codex.wordpress.org/Rewrite_API/add_rewrite_endpoint . Ich habe auch viele Artikel darüber, aber an allen Stellen, wie ich sehe, heißt es, dass wir Endpunkte für Posts, Seiten, Kommentare usw. im JSON-Format erstellen können. Ich bin nicht sicher, ob und wie es in meinem Szenario hilfreich sein kann. Ich will nur das -

  1. Erstellen Sie einen benutzerdefinierten Endpunkt
  2. Stellen Sie die WordPress-Funktionalität ordnungsgemäß zur Verfügung

Jede Hilfe wäre sehr dankbar. Danke im Voraus !!!

3
user_007

Haben Sie versucht, codex.wordpress.org/XML-RPC_Support.

Dieser Code funktioniert in Verbindung mit der IXR-Bibliothek unter incutio :

include('IXR_Library.php');

$usr = 'theusername';
$pwd = 'thepassword';
$xmlrpc = 'http://not-therealurl.com/xmlrpc.php';
$client = new IXR_Client($xmlrpc);

$client -> debug = true; //optional but useful

$params = array(
    'post_type' => 'post',
    'post_status' => 'draft',
    'post_title' => 'Test Post',
    'post_author' => 4,
    'post_excerpt' => 'This is my test excerpt',
    'post_content' => 'This is my test post. Now its longer than the excerpt.'
);

$res = $client -> query('wp.newPost',1, $usr, $pwd, $params); 
2
james may