logo 公式Webサイト

パワフルな
ブログ一覧

firebaseJavaScriptnext.jsPHPReactStripeTypeScriptWordPress
WordPressのカスタムデータベースで登録ユーザーかどうかを判定
WordPressのカスタムデータベースで登録ユーザーかどうかを判定 WordPressを用いたログイン機能が必要なWebアプリ開発で必須となる、登録ユーザーが重複しているかどうかの確認の実装方法についてを記述していきます。 WordPressのデータベースオブジェクトが格納されているグローバル変数にアクセスし、テーブル名を定義 global $wpdbでWordPressデータベースのオブジェクトにアクセス。 該当のテーブル名称を$wpdb->prefix . ‘テーブル名称’;で取得。 global $wpdb; $table_name = $wpdb->prefix . '該当テーブルの名称'; パラメーターを取得 サインアップ関数があると仮定し、引数に存在するパラメータ情報を取得します。 function handle_form_submission($request) { $parameters = $request->get_params(); } 引数->get_params()とすることで、該当の変数にリクエストパラメータを格納できます。 ※リクエストのボディ情報を含む全てのパラメータを取得することができます。このメソッドは、GET、POST、またはその他のHTTPメソッドを通じて送られたパラメータを含む配列を返します。 パラメータ内にある、検索対象の値を取得する 上記でパラメータの内容を格納した変数を取得します。 $email = $parameters['email']; これにより検索をかけたい値を取得することができます(今回はemail)。 該当の値を検索し、存在する値の数を返すSQLを定義 WordPressでSQLクエリを実行したい場合は、変数をクエリの中に安全に組み込むことができるprepareメソッドを使用します。 $query = $wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE email = %s", $email); 用意したいクエリをget_varメソッドで実行 上記で用意したクエリを単一の結果を取得できるget_varメソッドで実行。 get_var(実行したいクエリ)で実行可能です。 $count = $wpdb->get_var($query); これにより、count変数の中には該当テーブルに該当の値(今回はemail)が存在する数が格納されます。 count変数の内容によって処理を分岐 上記で取得したcount変数の値によって処理を分岐させます。 今回の場合は、リクエストの中にあるメールアドレスの数が0以外の場合にはエラーを返し、それ以外の場合に実行したい処理を記述します。 if […]