WPINC और ABSPATH के बीच अंतर क्या हैं?


34

यह प्लग इन डेवलपर्स को उनके प्लग इन को सीधे एक्सेस से बचाने के लिए सामान्य है। मैंने ऐसा करने के दो तरीके देखे:

if ( ! defined( 'WPINC' ) ) die;

तथा

if ( ! defined( 'ABSPATH' ) ) exit;

WPINC और ABSPATH के बीच अंतर क्या हैं? इसे करने का 'सही' तरीका कौन सा है?

जवाबों:


19

उन्हें निम्नानुसार परिभाषित किया गया है:

define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );

dirnameएक PHP फ़ंक्शन है जो मूल निर्देशिका का पथ लौटाता है, और wp-includesबहुत ही आत्म व्याख्यात्मक है।

मैं कहूंगा कि ABSPATHयह बेहतर है क्योंकि यह पहली चीजों में से एक है जो WP लोड करता है और यह बेहतर भी दिखता है :) लेकिन कोई वास्तविक "सही तरीका" नहीं है क्योंकि दोनों काम करते हैं।


4
कोई वास्तविक सही तरीका नहीं है, और मैं हमेशा उपयोग करता हूं if ( ! defined( 'ABSPATH' ) ) exit;... लेकिन, हो सकता है, इस बात पर विचार करें कि इस स्निपेट का दायरा यह सुनिश्चित करता है कि वर्डप्रेस लोड किया गया है 'WPINC' बेहतर है क्योंकि 'WP' के साथ अधिक वर्डप्रेसफुल घूर रहा है।
gazzazzap

4

if ( ! defined( 'WPINC' ) ) die;और if ( ! defined( 'ABSPATH' ) ) exit;अपनी प्लगइन फ़ाइल के लिए किसी भी सीधी पहुँच को रोककर सुरक्षा की एक अतिरिक्त परत जोड़ें। ABSPATHवर्डप्रेस द्वारा अपने मूल में परिभाषित एक PHP स्थिरांक है।

यदि आपकी प्लगइन फ़ाइल वर्डप्रेस के बाहर से एक्सेस की जाती है, तो निरंतर ABSPATHया WPINCपरिभाषित नहीं होगी, इसलिए यह आपके कोड में किसी भी अनधिकृत पहुंच को रोकते हुए, प्लगइन कोड से बाहर निकलता है।

ABSPATHऔर WPINCवर्डप्रेस कोर में निम्नानुसार परिभाषित किए गए हैं:

define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );

दोनों एक ही उद्देश्य के लिए उपयोग किए जाते हैं।


1

WPINC और ABSPATH के बीच अंतर क्या हैं?

आप खुद देख सकते हैं। बस को देखने केwp-load.php GitHub पर वर्डप्रेस दर्पण पर।

यहां तक ​​कि एक त्वरित झलक दिखाएगा कि वर्तमान में चयनित उत्तर अब ABSPATHपरिभाषित नहीं है कि कैसे परिभाषित किया गया है। और यदि आप GitHub पर विभिन्न टैग्स की तुलना करते हैं तो आप देखेंगे कि ABSPATHसमय के साथ वास्तव में परिभाषा बदल जाती है।

इसे करने का 'सही' तरीका कौन सा है?

सुरक्षा के लिए इनका उपयोग किया जाता है, मैं इसके लिए जाऊंगा ABSPATH। Rationale को ABSPATHकेवल WP बूटस्ट्रैपर में पहले परिभाषित नहीं किया जा रहा है , WPINCएक ही फाइल में एक सशर्त के तहत परिभाषित किया गया है और परिणामस्वरूप, भविष्य के प्रतिगमन का अनुभव करने की अधिक संभावना है।

इसके अलावा, जबकि स्पष्ट रूप से नहीं कहा, आप दोनों का उपयोग कर उदाहरण प्रदान की dieऔर exit। के अनुसार devdocs.io, जो आधिकारिक एपीआई प्रलेखन पर आकर्षित होता है, dieके बराबर है exit, इसलिए आप दोनों में से किसी एक को चुन सकते हैं और इससे कोई फर्क नहीं पड़ेगा।

दोनों dieऔर exitतर्क स्वीकार करते हैं, इसलिए आप उनका उपयोग कुछ उपयोगी जानकारी, जैसे एन्क्रिप्टेड संस्करण टैग या संपर्क जानकारी, पर रोक देने, या आगे के प्रसंस्करण के लिए 0या जैसे एक निकास कोड पास करने के लिए करने पर विचार कर सकते हैं -1

यह भी ध्यान देने योग्य है कि wp_dieयह भी एक बात है। PHP द्वारा निर्मित के साथ भ्रमित नहीं होना चाहिए, लेकिन सादे पाठ के अलावा HTML के आउटपुट में उपयोग के लिए उन्हें बधाई देता हूं और वर्तमान में वर्डप्रेस कोर में उदारतापूर्वक उपयोग किया जाता है। WordPress.org पर अधिकwp_die जानें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.