WordPress wpdb – Class – WordPress में किसी भी WordPress Schema Table के Data को Access व Manipulate करने के लिए wpdb नाम की एक Core Class को Define किया गया है, जो कि wp-includes/wp-db.php नाम की File में Exist है।
WordPress Database Schema की Tables के Data को Access व Manipulate करने के लिए हमें हमेंशा इसी Class को Use करना चाहिए, क्योंकि WordPress Core Developers ने इस Class को Perfect तरीके से Design किया है और यदि हम इस Class को Use करते हैं, तो Security Related विभिन्न प्रकार के Issues के बारे में हमें किसी प्रकार की चिन्ता करने की जरूरत नहीं रहती है।
साथ ही स्वयं की Queries Fire करने के लिए Manual Codes लिखने के स्थान पर इस Class के Object को Use करना ज्यादा आसान व सुविधाजनक रहता है। इस Class को Use करने का मतलब है कि हम WordPress Core को Safest व Best तरीके से Query Fire करने की सुविधा दे रहे हैं।
WordPress wpdb – Interaction with Database
WordPress Initialization के दौरान WordPress द्वारा $wpdb नाम का एक Object Create किया जाता है जो कि wpdb Class का एक Object होता है। WordPress Recommendation के अनुसार हमें हमेंशा $wpdb नाम के इस Object के माध्यम से ही WordPress Database को Access करना चाहिए।
wpdb Class वास्तव में एक Thin Database Abstraction Layer के समान है, जो हमें Database के साथ सामान्य प्रकार की Requirements को पूरा करने के लिए Basic Methods Provide करता है।
यानी यदि हम इस प्रकार की किसी Database Abstraction Class का प्रयोग करते हैं, तो हमें PHP के mysql_query(), mysql_fetch_array() जैसे Functions को Use करके Database के Data को Access करने की जरूरत नहीं होती है।
बल्कि WordPress द्वारा हमारे पूरे WordPress Database को ही एक Object Oriented Programming System आधारित Class के रूप में Define कर दिया जाता है और केवल उसी Database के लिए विभिन्न Methods Define कर दि, जाते हैं, जिनका प्रयोग करके केवल उसी Database के Data को Access व Manipulate किया जाता है।
इस प्रकार की Class को ही सामान्यत: Database Abstraction Class कहा जाता है, जो कि Particular किसी एक Database की Functionalities को Easy तरीके से Manage करने की सुविधा Provide करता है। Database Abstraction Class एक प्रकार से Developer व MySQL Functions के बीच एक Thin Layer होता है।
WordPress जिस Database Abstraction Class को Use करता है, उसका नाम ezSQL है जो कि बहुत ही Light-Weight MySQL Database Abstraction Class है। यानी केवल MySQL Database के लिए Design किया गया Abstraction Class है।
इस $wpdb Object का प्रयोग करके हम न केवल WordPress Database की सभी 11 Default Tables के Data को Read कर सकते हैं, बल्कि Plugins के लिए Create की गई किसी Custom Table के Data को भी Access कर सकते हैं।
चूंकि Database Class एक Object है, जिसके कुछ Properties व Methods हैं। इसलिए Plugin Development को बेहतर तरीके से समझने के लिए ये जरूरी है कि हम इस Object को अच्छी तरह से समझें। क्योंकि लगभग सभी प्रकार के Plugins में WordPress Database की किसी ना किसी Table के Data को Access करना ही होता है।
WordPress में Database Object को $wpdb नाम के एक Variable को Assign किया गया है। इसलिए जब भी कभी हमें हमारे WordPress Database को Access करने की जरूरत पडती है, हम या तो WordPress की Core Files में Define किए गए किसी Core API Function को Use करते हैं अथवा इस $wpdb Variable को Use करते हैं।
जब हम इसे Use करना चाहते हैं, तो सबसे पहले हमें इसे global Keyword के साथ Declare करके PHP Engine को ये बताना होता है कि इस नाम के Variable को किसी अन्य Script में पहले से Define किया जा चुका है और हम यहां केवल इसमें Stored Data को Use करना चाहते हैं। जैसे:
function my_function(){ global $wpdb; // Other Function code here for accessing $wpdb Object }
जब हम उपरोक्तानुसार global Keyword के साथ $wpdb को Declare कर देते हैं, तो Declare करते ही हमारे Current Function में इस $wpdb Object की सभी Properties व Methods Access करने के लिए Available हो जाते हैं।
पिछले Chapter में हमने WordPress के Rendering Sequence को समझते समय अपने स्वयं के Theme Create करने से सम्बंधित Basic बातों को जाना था कि किस तरह से हम WordPress में एक Theme Create कर सकते हैं, उसे Activate या Deactivate कर सकते हैं अथवा Install या Delete कर सकते हैं। जबकि किसी Theme की विभिन्न Template Files किस स्थिति में किसी Specific Post/Page पर Apply होती हैं।
हमारे Theme की Template Files या हमारा Plugin वह जगह होता है, जहां हम WordPress द्वारा Provided विभिन्न API Functions को Use करके उनका Effect, Web Browser में Output के रूप में देख सकते हैं।
इसलिए यहां से आगे हम जिस किसी भी Functionality के बारे में जानेंगे, उसे हम हमारे स्वयं के Custom Theme के index.php File में Apply करेंगे, क्योंकि यही वह Compulsory File होती है, जो सभी Custom Theme में Compulsory रूप से जरूर होती है और किसी भी अन्य Template की अनुपस्थिति में यही File Template Compulsory रूप से Execute होता है।
WordPress wpdb – Firing Query on Database
WordPress हमें WordPress Database की किसी भी Table अथवा किसी भी Custom Table पर किसी भी तरह की जरूरत को पूरा करने के लिए Query Fire करने की सुविधा देता है।
दूसरे शब्दों में कहें तो हम हमारी जरूरत के अनुसार MySQL Database पर विभिन्न प्रकार की Queries को Fire कर सकते हैं व विभिन्न प्रकार के Results Generate करते हुए अपनी किसी Specific Requirement को पूरा कर सकते हैं और ऐसा करने के लिए WordPress हमें $wpdb Object के माध्यम से query() नाम का केवल एक Method Provide करता है।
यानी हम केवल query() नाम के इस Method का प्रयोग करके WordPress Database की किसी भी Default या Custom Table पर किसी भी तरह की Simple या Joining वाली Complex Queries Fire कर सकते हैं और Return होने वाले Result को Handle कर सकते हैं।
$wpdb->query(‘query’) Method
इस Method में हम query Argument के रूप में एक String Formatted SQL Query Specify करते हैं, जिसे Execute करने का काम $wpdb->query() Method करता है। इस Method का प्रयोग करके हम किसी भी तरह की SQL Query को WordPress Database पर Fire कर सकते हैं, जिनके Database पर Successfully Fire होने पर हमें Query द्वारा Selected कुल Records की संख्या प्राप्त होती है। जबकि MySQL Error Generate होने पर ये Method FALSE Return करता है।
चूंकि ये Method False के रूप में 0 भी Return कर सकता है और false भी] इसलिए इसे Use करते समय हमें Equality ( == ) व Identically Equal ( === ) में से Correct Comparision Operator का प्रयोग करना होता है।
उदाहरण के लिए यदि हम हमारे WordPress Database के wp_posts Table के सभी Posts को Render करना चाहें, तो हम इस जरूरत को पूरा करने के लिए निम्नानुसार तरीके से $wpdb->query() Method को Use कर सकते हैं:
<?php global $wpdb; $q = "SELECT * FROM wp_posts"; echo $wpdb->query($q); ?>
जब ये Code Execute होता है, तो हमें Resultant Output के रूप में एक संख्या प्राप्त होती है, जो कि wp_posts नाम की WordPress Table के कुल Records की संख्या है। जबकि इस संख्या में Posts, Pages, Revisions, Attachments व Links तथा अन्य Custom Post Types के कुल Records भी Included हैं।
जबकि यदि हमें केवल कुल Posts की संख्या ही प्राप्त करनी हो, तो हम उपरोक्त Code के SQL Statement को निम्नानुसार Modify भी कर सकते हैं:
<?php global $wpdb; $q = "SELECT * FROM wp_posts WHERE post_type = 'post'"; echo $wpdb->query($q); ?>
यानी $wpdb->query() Method का प्रयोग करके हम DML, DDL, DCL आदि किसी भी तरह के SQL Statement को MySQL Database पर Fire कर सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance WordPress in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।
Advance WordPress in Hindi | Page: 835 | Format: PDF