私はPHP
経由でWordpress環境の外(しかし同じサーバー上)に投稿を挿入する必要があり、これを行うための最も効率的な方法を探しています。
私は2つの解決策について考えていました:
1)説明したようにXML-RPCを使う ここ
2)wp-load.php
を必要とし、次にwp_insert_post()
を使用するWordPressコアをロードします
どちらがより少ないリソースを使用しますか。データベースに新しい投稿を挿入するだけでよく、プラグインやテーマ設定などのサポートは必要ありません。これを行うにはもっとハックする方法がありますか?
ありがとうございました!
あなたがリモートサーバー上にいる場合、XMLRPCが最善ですが、ログイン情報が必要です
同じサーバー上のPHPスクリプトを使用している場合、wp-load.php
が最善です(XMLRPCはある種の要求を含みます)
bashまたはCLIスクリプトを使用している場合、WP CLIが最善です。例:
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'
あなたが頭がおかしいなら、生のSQL挿入、速い、安い、必要なすべてのフックとAPI呼び出し、プラグイン、キャッシュなどとの最も互換性のないオプションを起動しません。
あなたがさらに頭がおかしいのなら、あなたはWXRファイルを書き出してからWordPressインポーターを実行することができます
あなたが辛抱強いなら、それをRSSとして提供し、それを取り込むためにWordPressに集約プラグインを使用させる
そうすると、外部スクリプトが最初からなくなり、フォームハンドラ用の専用ファイルなどを作成するのではなく、WP AJAX APIを使用してプラグインを作成することになります.
除くあなたがSymfonyまたはZendのセットアップの中にいる、あなたの質問はあなたが恐ろしいことをしていることを示しています。
あなたがそのような状況でareしていたとしても、そのためのライブラリがあります。
https://github.com/kayue/KayueWordpressBundle
とりわけ。
私はwp-load.php
がおそらく最も安全で最も互換性のある方法であり、高価なhttpリクエストを必要としないと言うでしょう。それはまたほとんどのライブラリがそれを実装する方法でもあります、それは私がそれをする方法でもあります。
しかし、WordPressで投稿を挿入/作成することは、本質的に費用がかかる作業です。負荷を軽減することはできますが、プラグインや投稿がなく、hello worldのサンプル投稿とページしか含まれていないサイトを運営しているのでない限り、迅速で迅速な操作にはなりません。
どちらがより少ないリソースを使用しますか?
どちらも、本当に。
私はプラグインやテーマ設定などのサポートは必要ありません。
私はあなたがあなた自身の質問に答えたと思います。後者の手法(wp-load.php
)を試してください。
これを行うためのもっと厄介な方法はありますか?
に従ってください - ウィクショナリーhackishは:
うまく設計されていない回避策
あなたは直接SQLを通してそれをすることができるか、あるいはいくつかの.sql
ファイルを生成しそしてあなたのデータベースに直接それをインポートすることさえできます;-)
このパスはたぶん柔軟でなくて濁ってさえいるでしょう、しかしhackishyes ;-)
しかし、一般的に私は番号2
)で行きます。
同じサーバー上にいるので、カスタムSQLクエリを実行しないのであれば、wp-load.phpを使用してコアファイルをロードするよりもサーバーリソースが少なくて済みます。