web-dev-qa-db-ja.com

送信 WP 外部APIへの投稿

すべての新しいWordpress Postを別のサーバー上の外部スクリプトに送信するための最善の方法は何ですか?

投稿内容を含む完全な投稿情報を含める必要があるため、単純なpingでは十分ではありません。

Wordpressプラグインがどのように機能するのか(過去の経験はありません)とpublish_postとedit_postの動作は正しい方向に沿っているように見えますが、送信されるデータが最新ではないという問題がいくつかあります。 edit_postは私がget_post()を使ってpost_idを送り、提供されたデータは古いデータです。

これに関するもう1つの大きな問題は、投稿を外部サーバーに送信するためにCURLを使用することをおそらく必要とすることです。

私が考えることができる唯一の他の解決策は私のサーバーから来る要求を傍受するためにwp_init()に関数を添付することです。これを明確にするために、私のサーバーは "mysite/1.0"のようなカスタムユーザーエージェントでWPインデックスを要求する必要があります。このカスタムユーザエージェントが検出された場合、プラグインは自分自身で何かを出力してから終了し、標準のWP出力を妨げます。

そのように私はワードプレスから私のサーバーをpingするために内蔵のpingサービスを使用して、このpingからパーマリンクを得てそれから私のプラグインによって傍受されjsonとして出力されるWPにリクエストを送り返すことができます。

これは実現可能ですか?

私が気付いていない外部のスクリプトに投稿全体を送るためのもう一つの一般的に使われる方法はありますか?

私はWordpressを使い慣れていないので実際には使用しませんが、Wordpressを使用している人から自分のサイトに自分のコンテンツを自動的にインポートする方法について質問されました。そうするためのプラグイン:)

1
John Mellor

私はそれを処理するためのより良い方法は他のサイトにコンテンツのフィードを削り取らせることだろうと思う。別の方法として、publish_postsフックを実行するたびに受信側サーバーでAPIを呼び出すこともできますが、同時に編集できないという問題があります。もう一つの解決策はあなたのサーバーがWordPressデータベースを照会しそしてあなたがpostsテーブルから必要なデータを引き出すことを可能にすることです。

2
mor7ifer