なお、各項目の数値の選択肢はテキトーに設定しています。, 作成したページの「予測」ボタンをクリックすると、データが予測用APIに送信されて予測結果が返り、ページに表示されるようにします。ローカルでphpファイルを作成します。, ウェブページで入力したデータをarray形式に格納して、json形式に変換してから予測用APIサーバに送信しています。返り値の予測値を表示するようにしています。なお、phpの作成についてはこちら3を参考にしています。ローカルで作成したファイルをWordPressコンテナに格納します。volディレクトリにphpを格納しておきます。, volディレクトリはコンテナ上の/mntにマウントしているので、phpが格納されているディレクトリにファイルをコピーします。, では、WordPressで作成したページで値を適当に入力して、「予測」ボタンを押してみましょう。, 真っ白なページに予測値などが表示されていて見た目は悪いですが、Webページ上で予測用APIを叩いて表示することができました。, Docker上でWordPressを使って作成したWebページ上で機械学習モデルの予測を行うことができました。まだまだ勉強が足りないところがあったり、見た目が悪かったりしていますが、今後の課題です。今後はAWSなどのクラウド上で動かしてみたいと思っています。, https://qiita.com/maimax/items/5090fd37f9832fe3c5fd ↩. WP REST APIはWordPressで作成したサイトの投稿やデータにアクセス可能になるAPIです。 WordPress 4.7で本格的にプラグインから統合されたREST APIですが、最近利用する機会がありましたので、Tipsをまとめてみました。 https://qiita.com/maimax/items/5090fd37f9832fe3c5fd, you can read useful information later efficiently. 法人向け共用レンタルサーバー「SV-Basic」, 【WordPress】WordPress『MW WP Form』 入力欄の複合条件でエラーを表示する方法, WordPress『WP REST API』#1 ブログを他のサイトに埋め込む方法, ACE01誕生から8年ぶりの新共用サーバー「シェアードプラン SV-Basic」を語る!, CPIのTwitterアカウントでは、サイト、サーバー管理者のための重要なセキュリティ情報や、サイト運営者のためのヒント、お得なキャンペーン情報をお知らせしています。, 掲載内容について、当社は情報の掲載には細心の注意を払っておりますが、完全性などについて保証を行うものではありませんので予めご了承ください。 掲載されている情報をご利用いただいた際に、損害が発生・誘発した場合や、情報自体の真偽性・合法性・道徳性・著作権の許諾等について問題が発生した場合などについて、当社は一切の責任を負いません。掲載されている情報を利用したサイト製作については、ご自身の責任において行ってください。, オリジナルのエンドポイントを追加して、どのテーブルからどういう値を取得するかなどの処理を自由に実装できるカスタムエンドポイント機能. By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. docker execコマンドでWordPressコンテナに入ってcurlコマンドで予測用のデータを送信します。, それではWordPressの設定に移ります。 Why not register and get more from Qiita? WordPressと他のシステムを連携させるために『WP REST API』が用いられることが多いですが、そのような場合にカスタムエンドポイント機能でエンドポイントを自作すれば、連携先のシステムのデータ形式に合わせて実行結果を自由に整形できるのでとても便利です。 先日、機械学習モデルの予測値を返すAPIをDockerで作ってみたという記事を書きましたが、せっかくAPIで予測値を取得できるようになったのでWebページから予測を行いたいと思い、Dockerで構築してみました。今回構築するイメージは下図の通りです。, Docker上に3つのコンテナを立てて、ローカルのブラウザからWordPressにアクセスして、予測結果をWordPressで確認するところまで行いたいと思います。, 様々な手順があると思いますが、今回はWordPressを構築した後、予測用のコンテナを構築します。それらの接続確認をした後、WordPressの記事作成を行って動作確認をするというような流れで構築していきます。, WordPressと機械学習モデルの予測に用いるコンテナイメージを取得します。 WordPressから機械学習モデルの予測APIを呼び出してみた . 前回の記事では、WordPressに標準搭載されている『WP REST API』の使用方法と、『WP REST API』のpostエンドポイントを使ってブログの内容を取得する方法についてご紹介しました。, 今回は『WP REST API』に用意されているカスタムエンドポイント機能を使って、より使いやすいオリジナルのエンドポイントを追加して、思いどおりの情報を取得する方法をご紹介いたします。, エンドポイントの追加を行ってみることで、『WP REST API』がWordPressの内部でどのような動きをしているのかより深く理解することができます。, 『WP REST API』はさまざまなエンドポイントがはじめから用意されていますが、それらのエンドポイントだけでは欲しい情報が得られないことがあります。そういった場合に、オリジナルのエンドポイントを追加して、どのテーブルからどういう値を取得するかなどの処理を自由に実装できるカスタムエンドポイント機能が用意されています。, WordPressと他のシステムを連携させるために『WP REST API』が用いられることが多いですが、そのような場合にカスタムエンドポイント機能でエンドポイントを自作すれば、連携先のシステムのデータ形式に合わせて実行結果を自由に整形できるのでとても便利です。, また、カスタムエンドポイント機能が役に立つのはデータを参照する場合だけではありません。『WP REST API』を通して複雑な処理(~~の場合は登録、~~の場合は削除など)を行いたい場合に、オリジナルのエンドポイントを作れば1度の呼び出しで全ての処理が完結します。, 次章では実際に「ユーザーの一覧とそのユーザーが投稿した記事の一覧を取得する」という機能のエンドポイントをWordPressに追加してみます。, オリジナルのエンドポイントを作成するために、WordPressで現在適用しているテーマのfunctions.phpに追加するエンドポイントの「URLの定義」と「実行する処理」を追加していきます。, まずエンドポイントを実行するためのURLを定義します。ここで定義するのは、(投稿を取得するエンドポイントの場合)/wp-json/wp/v2/postsの「/wp/v2/posts」にあたる部分です。, register_rest_route関数の第一引数「wp/custom」と第二引数「/posts_by_users」がエンドポイントのURLになります。, 今回作成するエンドポイントのURLは/wp-json/wp/custom/posts_by_usersとなります。, register_rest_route関数の第三引数に指定した配列の属性'callback' に、エンドポイントにアクセスした際に実行される関数名(get_posts_by_user)を文字列で指定します。, 2.1でコールバック先に指定したget_posts_by_user関数を作成して、処理の内容を実装していきます。処理の内容は2.1と同じくfunctions.phpに追加していきます。 functions.php, get_users関数でユーザー(上限20人)の情報を取得した後、それらのユーザーが投稿したブログをget_posts関数で取得するという処理です。, get_users関数やget_posts関数の実行結果には今回のAPIに不要な情報まで含まれますので、必要な情報(ユーザーID、ユーザー名、投稿したブログのタイトル、ブログのURL)だけを抜き出して戻り値$resultに設定しています。, APIの実行結果として受け取れるのはJSONというデータ形式の文字列ですが、今回作成したget_posts_by_users関数の戻り値はPHPのオブジェクト(配列)をそのままreturnしてください。※自動的にJSON文字列に変換されますので、json_encode関数を使って変換する必要はありません。, まずは、2.で追加したオリジナルのエンドポイントにWebブラウザでアクセスしてみましょう。, /wp-json/wp/custom/posts_by_users, JSON文字列で、ユーザーの情報とブログの情報が取得できていることを確認してください。, 取得できていない場合は、URLが間違っていないか、2.の実装が間違っていないかを確認してください。, 確認できたら、つぎはJavaScriptを利用して、オリジナルのエンドポイントからデータ取得し、ユーザーごとの投稿一覧をWebブラウザの画面に表示してみましょう。, $.ajaxのurlに2.で追加したオリジナルのエンドポイントのURLを指定します。あとは実行結果に合わせてHTMLを組み立てていくだけです。, 今回は『WP REST API』のカスタムエンドポイント機能を使ってオリジナルのエンドポイントを追加する方法をご紹介いたしました。, 『WP REST API』のエンドポイントは(カスタムエンドポイントを含めて)リクエストパラメータを指定することも可能です。例えば、指定したユーザーID(またはユーザー名)に一致するユーザーの投稿情報を取得する、といった処理を実装することも可能です。, リクエストパラメータとカスタムエンドポイントを組み合わせれば、さらに自由度の高いエンドポイントの処理を実装することができますので、ぜひ調べて使いこなしてみてください。, ビジネス活用に必要な機能がそろった はじめに. こちら2を参考に、起動の前にdocker networkコマンドでネットワークを構築しておきます。, WordPressについては-vオプションでローカルのvolという名前のディレクトリをコンテナ中の/mntにマウントしています。これはあとで予測用APIにPOST通信する時に使用するphpスクリプトをローカルで作成してコンテナ内に格納するためです。 新しく固定ページを作成して、以下の内容を記入します。 Help us understand the problem. こちら1の記事を参考にして、次の3つのコマンドを実行してイメージを取得します。, WordPressとMySQLのコンテナを起動します。 What is going on with this article? 予測用APIを叩く部分はあとで設定します。, 構築は機械学習モデルの予測値を返すAPIをDockerで作ってみたで記載した通りなので、省略しますが、コンテナを起動する際には作成したネットワークを指定するようにします。, 一度WordPressコンテナからcurlコマンドで予測用APIサーバーとの接続を確認します。 Python WordPress Flask Docker Python3. また、-pオプションでポートフォワードを設定して、ローカルの8080番ポートをコンテナ内の80番ポートに転送しています。, ローカルのブラウザで、http://localhost:8080にアクセスするとWordPressの設定画面が現れるので、好みの言語を設定します。, 管理者ユーザの名前やパスワードを設定します。メールアドレスも入力する必要がありますが、適当に入れておけば大丈夫です。, 「WordPressをインストール」ボタンをクリックすると、管理者用の画面が現れます。, この時点でブラウザで再度http://localhost:8080/にアクセスするとおしゃれなページが出てきます。, ここまででWordPressの構築は終了です。