it-swarm.com.de

Der effizienteste Weg, einen Beitrag außerhalb von WordPress einzufügen?

Ich muss einen Beitrag über PHP außerhalb der Wordpress-Umgebung (aber auf demselben Server) einfügen und suche nach dem effizientesten Weg, dies zu tun.

Ich habe über 2 Lösungen nachgedacht:

1) Verwenden von XML-RPC, wie hier erklärt

2) Laden Sie den WordPress-Core, für den wp-load.php erforderlich ist, und verwenden Sie dann wp_insert_post()

Welcher verbraucht weniger Ressourcen? Ich muss nur einen neuen Beitrag in die Datenbank einfügen und benötige keine Unterstützung für Plugins, Theming usw. Gibt es eine weitere hackische Möglichkeit, dies zu tun?

Vielen Dank!

3
achairapart

Wenn Sie sich auf einem Remote-Server befinden , ist XMLRPC am besten geeignet, erfordert jedoch Anmeldedaten

Wenn Sie sich in einem PHP -Skript auf demselben Server befinden , ist wp-load.php am besten (XMLRPC wird eine Art Anfrage beinhalten)

Wenn Sie sich in einem Bash- oder CLI-Skript befinden , WP CLI ist am besten geeignet, z.

wp post create --post_type=page --post_status=publish --post_title='A future post' --post-status=future --post_date='2020-12-01 07:00:00'

Mehr zu WP CLIs erstellen nach Befehl

Wenn Sie verrückt sind , eine rohe SQL - Einfügung, schnell, billig, löst nicht alle erforderlichen Hooks und API - Aufrufe aus, die inkompatibelste Option mit Plugins, Caches usw

Wenn Sie noch verrückter sind , können Sie eine WXR-Datei ausschreiben und dann den WordPress-Importer ausführen

Wenn Sie geduldig sind , geben Sie es als RSS an und lassen Sie WordPress ein Aggregations-Plugin verwenden, um es abzurufen

Wenn du gesund bist

Dann ist zunächst kein externes Skript vorhanden, und Sie haben ein Plugin erstellt, das die API WP AJAX verwendet und keine dedizierte Datei für einen Formular-Handler usw. erstellt.

Sofern Sie sich in einem Symfony- oder Zend-Setup befinden, weist Ihre Frage darauf hin, dass Sie etwas fürchterlich Falsches tun.

Wenn Sie jedoch in einer solchen Situation are sind, gibt es Bibliotheken dafür, Bibliotheken wie:

https://github.com/kayue/KayueWordpressBundle

Unter anderem.

Aber für Sie achairapart

Ich würde sagen, dass wp-load.php wahrscheinlich der sicherste und kompatibelste Weg ist, der keine teuren http-Anfragen erfordert. Es ist auch, wie die meisten Bibliotheken es implementieren, es ist auch, wie ich es tun würde.

Beachten Sie jedoch, dass das Einfügen/Erstellen eines Posts in WordPress von Natur aus teuer ist. Sie können die Last reduzieren, aber es wird niemals eine schnelle und schnelle Operation sein, es sei denn, Sie führen eine Site aus, die keine Plugins oder Beiträge enthält und nur den Beitrag und die Seite des Beispiels "Hallo Welt" enthält.

10
Tom J Nowell

Welcher verbraucht weniger Ressourcen?

Wirklich auch nicht.

Ich benötige keine Unterstützung für Plugins, Themes usw.

Ich denke, Sie haben Ihre eigene Frage beantwortet. Entscheide dich für die letztere Technik (wp-load.php).

3
TheDeadMedic

Gibt es einen hackigeren Weg, dies zu tun?

Laut Wiktionary hackish bedeutet:

schlecht gestaltete Problemumgehungen

Du könntest es direkt über SQL machen oder sogar eine .sql Datei generieren und direkt in deine Datenbank importieren ;-)

Dieser Pfad wird wahrscheinlich unflexibel und sogar matschig sein, aber hackisch ja ;-)

Aber im Allgemeinen würde ich mit der Nummer 2) gehen.

2
birgire

Da Sie sich auf demselben Server befinden, sollten Sie eine benutzerdefinierte SQL-Abfrage durchführen. Ich denke, diese wird weniger Serverressourcen beanspruchen als das Laden der Core-Datei mit wp-load.php

0
WpMania.Net