यहां एक संशोधित चेकलिस्ट है, जो मेरे वर्तमान (कार्य-प्रगति-प्रगति) सेटिंग्स / डेटा सुरक्षा चेकलिस्ट पर आधारित है, जिसका उपयोग थीम्स की समीक्षा के लिए किया जाता है (सिद्धांत थीम के लिए प्लगइन्स के लिए अलग नहीं होने चाहिए)
प्लगइन्स को प्लग-स्लग के साथ सभी विकल्पों, कस्टम फ़ंक्शंस, कस्टम चर, और कस्टम स्थिरांक को उपसर्ग करना चाहिए।
प्लगइन्स को प्लगइन विकल्प और प्लगइन सेटिंग्स पृष्ठों को जानबूझकर लागू करना चाहिए, बजाय वेबसाइट ट्यूटोरियल के कॉपी-एंड-पेस्ट स्क्रिप्ट पर निर्भर होने के बजाय, जैसे कि नीचे वाले, जो पुराने हैं, और उचित डेटा सुरक्षा शामिल नहीं करते हैं:
प्लगइन्स को टॉप-लेवल मेन्यू को जोड़ने के बजाय मेनू add_options_page()
में प्लगइन सेटिंग्स पेज को जोड़ने के लिए फ़ंक्शन का उपयोग करना चाहिए ।Settings
add_menu_page()
सेटिंग्स पेज को जोड़ने की क्षमता के लिए प्लगइन्स को एक उपयुक्त क्षमता (जैसे manage_options
) का उपयोग करना चाहिए ।
प्लगइन्स को सेटिंग्स पेज के लिए कई विकल्प बनाने के बजाय एक ही सरणी में विकल्पों को सहेजना चाहिए। सेटिंग्स एपीआई (नीचे देखें) का उपयोग यह संभाल लेगा।
प्लगइन्स को सीधे $_POST
और भरोसेमंद डेटा के बजाय फ़ॉर्म इनपुट डेटा प्राप्त करने और सहेजने के लिए सेटिंग्स एपीआई (नीचे देखें) का उपयोग करना चाहिए $_REQUEST
।
चेक बॉक्स का चयन करें और विकल्पों के लिए, प्लगइन्स का उपयोग करना चाहिए checked()
और selected()
outputting के लिए काम करता है checked="checked"
और selected="selected"
, क्रमशः।
डेटाबेस में डेटा दर्ज करने से पहले प्लगइन्स को सभी अविश्वासित डेटा को मान्य और अलग करना चाहिए, और सेटिंग्स फॉर्म फ़ील्ड में आउटपुट होने से पहले और थीम टेम्प्लेट फ़ाइलों में आउटपुट होने से पहले सभी अविश्वसनीय डेटा से बचना चाहिए:
प्लगइन्स को esc_attr()
टेक्स्ट इनपुट के लिए और esc_html()
(या esc_textarea()
WP 3.1 में) टेक्सारैस के लिए उपयोग करना चाहिए ।
प्लगइन्स को सेटिंग्स एपीआई का उपयोग नहीं करने पर स्पष्ट रूप से सेटिंग्स-पेज नॉन चेकिंग प्रदान करनी चाहिए:
यह भी अत्यधिक अनुशंसित है कि प्लगइन्स सेटिंग्स एपीआई का उपयोग करते हैं, जो उपयोग करना अधिक आसान है, अधिक सुरक्षित है, और सेटिंग्स पृष्ठों के बहुत से काम का ध्यान रखता है: