回答:
テーマの確認に使用される現在の(進行中の)設定/データセキュリティチェックリストに基づいた、変更されたチェックリストを次に示します(プラグインでもテーマよりも原則は変わらないはずです)。
プラグインは、すべてのオプション、カスタム関数、カスタム変数、およびカスタム定数の前にplugin-slugを付ける必要があります。
プラグインは、以下のようなWebサイトチュートリアルのコピーアンドペーストスクリプトに依存するのではなく、プラグインオプションおよびプラグイン設定ページを意図的に実装する必要があります。これらは古く、適切なデータセキュリティは含まれていません。
プラグインは、トップレベルメニューを追加するのではなく、add_options_page()
関数を使用してプラグイン設定ページをSettings
メニューadd_menu_page()
に追加する必要があります。
プラグインは、設定ページを追加する機能に適切な機能(manage_options
)を使用する必要があります。
プラグインは、設定ページに複数のオプションを作成するのではなく、単一の配列にオプションを保存する必要があります。Settings API(以下を参照)を使用すると、これを処理できます。
プラグインは$_POST
、$_REQUEST
データに直接依存するのではなく、設定API(下記を参照)を使用してフォーム入力データを取得および保存する必要があります。
チェックボックスおよび選択オプションの場合、プラグインは、checked()
およびselected()
を出力するためにchecked="checked"
およびselected="selected"
をそれぞれ使用する必要があります。
プラグインは、データベースにデータを入力する前にすべての信頼されていないデータを検証およびサニタイズし、設定フォームフィールドに出力される前およびテーマテンプレートファイルに出力される前にすべての信頼されていないデータをエスケープする必要があります:
プラグインはesc_attr()
、テキスト入力およびesc_html()
(またはesc_textarea()
WP 3.1の)テキストエリアに使用する必要があります。
プラグインは、設定APIを使用しない場合、設定ページのノンスチェックを明示的に提供する必要があります。
また、プラグインは設定APIを使用することを強くお勧めします。設定APIは使いやすく、より安全で、設定ページの多くの面倒な作業を処理します。
Settings APIの使用に関する優れたチュートリアルについては、以下を参照してください。
http://www.chipbennett.net/2011/02/17/incorporating-the-settings-api-in-wordpress-themes/
http://planetozh.com/blog/2009/05/handling-plugins-options-in-wordpress-28-with-register_setting/
安全でしっかりとコード化されたテーマ設定ページでテーマをチェックアウトしたい場合は、このテーマをチェックアウトしてください:http :
//wordpress.org/extend/themes/coraline
これには2つの側面があります。
基本原則。
詳細。