私はWordPress.orgサイトを持っています。そこにはユーザー入力を受け取り、カスタムデータベースを検索し、そしてクエリの結果を表示します。 wpdbクラス を使ってこれを動かしています。今、私はこれをAndroidアプリで動かそうとしています。
私が理解していることから、RESTfulなサーバーを構築することはこの種のことのための現在の「ベストプラクティス」です。私はこれを行うのを助けることができるいくつかのプラグインを調べました、そして私は出くわしました:
json-rest-api - これは、WordPressのコア機能(投稿、ページ、ユーザーなど)のみを公開しているように見えます。デフォルトテーブル。
Jetpack もありますが、私が見たところでは、json-rest-apiはこの更新版であり、コア機能のみを提供するようです。
これらのプラグインのいずれかをカスタムエンドポイント用に機能させる方法はありますか?それとも私がまだ見つけていない他のプラグインはありますか?
私がプラグインを使わないのなら、私は自分でロールバックしなければならないだろうと思います。私はこれを最初から(wpdb
、msqli
などを使って)行うことも、 Restler のようなAPIを使って行うこともできます。
自分のテーマでテンプレートを作成した場合は、そこにRESTを入れ、そのテーマをダッシュボード内のページに割り当てますか。それとも別のサーバーをWordPressとは別に実行したほうがよいでしょうか。
私が見ることができる限りでは、これらは私の唯一の選択肢です。このようなことに対して推奨されるベストプラクティスは何かを知りたいのですが。他にだれもこれをしていないと信じるのは難しいと思います。見落としているオプションはありますか?
はい、WordPressは確かにモバイルアプリのバックエンドとして機能することができます。はい、ページは残りのエンドポイント/インターフェースとして機能できます。いいえ、テーマテンプレートはロジックにとって正しい領域ではありません。あなた自身のプラグインを書いてください。
他にだれもこれをしていないと信じるのは難しいと思います。
私は、1つには、持っています。一回以上。そして、私は一人じゃないと確信しています。 「誰もそれについて広範囲にブログを書いていない」というのがおそらくもっと正しい考えです。
私がプラグインを使わないのなら、私は自分でロールバックしなければならないだろうと思います。私はゼロから(wpdb、msqliまたは何かを使って)、あるいは Restler のようなAPIの助けを借りてこれを行うことができます。
私は "Restler"を知りません、そしてそれはとにかくこのスタックの範囲外です。
「wpdb、msqliなどの使用」に関する限り、データベースに(受信した)データを保存するためにwpdb
を使用することになるでしょうが、エンドポイントロジックには関係ありません。
テーマテンプレートはあなたが検討すべきものではありません。テーマは視覚的表現のためのものです。 RESTエンドポイントは外観をまったく必要としません。
ショートコード を使用して、エンドポイントを使用するページにエンドポイントを挿入します。
ショートコードハンドラ/コールバックに HTTP POST または _ get _ のいずれかをリスンさせ、それに応じてデータ保存または他の二次メソッドを呼び出します。
場合によります。
データを保存するためのエンドポイントだけが必要な場合:いいえ。wpdb
を使用して数行のコードを保存するためだけにコア全体をロードすることには意味がありません。
Webブラウザを介してログインでき、表形式のデータを表示できるバックエンドが必要な場合は、複数のアクセスレベル/ユーザーの役割と権限でも、データを変更する方法を提供できます。理にかなっている。
APIエンドポイント 特に、MySQLに精通している場合は、/ pluginがすべてのニーズをカバーするはずです。次のようにします。
新しいTwigテンプレートを作成し、MysQLクエリを入力してWordPressサイトからデータを取得し、Twig構文を使用してデータを任意の形式で出力します。例えば、JSONです。
新しいAPIエンドポイントを作成し、名前を付けて、ステップ1で作成したTwigテンプレートを使用するように構成します。
完了したら、作成したいエンドポイントごとにステップ1と2を繰り返します。 APIエンドポイントは標準のWordPress認証システムを使用するため、WordPressに別のユーザーを作成し、そのユーザー名/パスワードを使用してAPIエンドポイントにアクセスするのが最善です。
WP REST APIの新しいバージョンはベータ版ですが、カスタムRESTエンドポイントの登録方法に関する優れたドキュメントがあります。それがどうやってそれがバージョン1で行われることができるかについての非常に小さな曖昧さもあります、ベータが安定しているか安定していることを保証されないので私は試してみるつもりです。登録したメソッドの中からwpdbを使用できると思います。私は実際には単にACFのものを使って、それを私のphpの中のオブジェクトに事前分析して、AngularJSで検索可能/分類可能なマルチプロパティインデックスページを作成しています。