~Linux、MySQLからAJAXまでWordPressプラグイン作成に関わるメモWordPressのプラグイン作成に関わりそうな情報をメモ書きしています。※目次をクリックすると目次の下部にコンテンツが表示されます。・すべてのWordPressプラグインはwp-content/plugins/ディレクトリ内に保存するので他のプラグインと重複しないように注意する。・プラグインが利用するファイルを含めて一つのディレクトリ内に構成することを推奨。・プラグインのメインのPHPファイル内でPHPのコメントとして記述する。・このプラグインのヘッダーを基にWordPressはプラグインの情報を取得し、管理画面に表示する。Name”は必須情報、残りの項目はオプション。●register_activation_hook・プラグインが有効化されたときに実行される関数を登録。$function)$file:wp-content/pluginsディレクトリにあるメインプラグインファイルへのパス。$function:プラグインが有効化されたときに実行される関数。・プラグイン有効時にプラグインがサポートするWordPressのバージョンかどうかチェックしたり、デフォルトのオプション設定をするなどに利用される。);●register_deactivation_hook・プラグインが停止されたときに実行される関数を登録。・オプションの保存、投稿のフォーム、Ajaxリクエストなどのリクエストでシークレットキーを生成することによって不正なアクセスを停止するのに使用される。forgery)による攻撃から守る。・このシークレットキーは、リクエストを生成する前に生成され、リクエスト内に渡される。他の処理が行われる前に同じキーがとうかチェックされる。名前$referer:認証用のrefereフィールドを設定するか否か。$echo:hiddenフィールドをフォームに出力するか否か。・フォームにhiddenフィールドとして追加するためのnonceを取得または表示する。nonceフィールドはフォームの内容が現在のサイトから来たものであり、他のサイトからではないということを認証するために使われる。)$nonce:認証したいフォーム内で使われたnonce$action:nonceを作成したときに指定したaction名。・nonceが正しく設定されていて有効期限が切れていないかを確かめる。※フォームの場合と同様にwp_verify_nonce()を使ってnonceをチェックできます。バリデーション、サニタイズ外部から入力されたデータを取り扱う場合、データをバリデーションし、不正なデータ、危険なデータをサニタイスする必要がある。命名esc_xxx_e・escエスケープ関数のプレフィックス・xxxエスケープする対象。html、attr、textarea、js、sql、url、url_raw・_e又は___e:echoする__:リターンする●esc_html・「<」、「>」、「&」、「”」、「’」のHTML特殊文字をエンコードし、HTMLブロックをエスケープする。link</a>●esc_attr・HTML特殊文字をエンコードし、alt、value、titleなどのHTML属性値をエスケープする。?>”>●esc_textarea・HTML特殊文字をエンコードし、テキストエリア要素値をエスケープする。?></textarea>●esc_url・テキストや属性などのURLを無害化する。・無効なキャラクタを除外し、危険なキャラクタを削除する。&#039)という形に変換される。?>”>Home</a>●esc_js・JavaScript内のテキスト文字列をエスケープする。?>’;</script>●esc_sql・SQLクエリーに適切に用いるためにエスケープした値をリターン。・データベース内に保存する前にサニタイズする場合などに使用。●sanitize_text_field・ユーザーが入力、またはデータベースから取得した文字列を無害化する。●sanitize_email・メールアドレスで許可されていない文字を除去。●wp_kses・悪意あるスクリプトを除去。・すべての信頼できないHTML(投稿文、コメント文など)はwp_kses()を通す事を推奨。・事前に指定したHTMLタグと属性のみを許可するようにできる。例)aタグのclass属性は許可されていないので除去される。・プラグイン用のオプション以外にテーマ用のオプションの保存にも利用される。・すべてのデータは、カスタムな名称のもとにwp_optionsテーブル内に保存される。・オプションの名前はWordPress全体で一意でなければならない。プラグイン毎にプレフィックスをつけるなどして重複しないようにする。・add_option()、update_option()でオプションを作成して保存できる。・update_option()は、すでに存在していた場合は更新する。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。