WordPress Transients API for Time Bound Data

WordPress Transients API – अक्सर WordPress Theme या Plugin Create करते समय हमें ऐसे Volatile Data को Database में Store करने की जरूरत पडती है, जो कि एक निश्चित समय के बाद Expire हो जाते हैं। उदाहरण के लिए यदि हम ऐसे Download Links Provide करना चाहते हैं, जो कि Specific समय के बाद Expire हो जाते हैं, तो इस प्रकार के Download Links को Volatile Data के रूप में Database में Store व Manage करने के लिए WordPress हमें Transients API Provide करता है।

Transient API हमें Database में किसी Cached Data को Temporarily Store व Retrieve करने के लिए एक Simple तरीका Provide करता है। ये API वास्तव में Options API के समान ही होता है और WordPress Database की Options Table में ही Store होता है। लेकिन इस API द्वारा Database में Store होने वाले Data के साथ Expiration Time के रूप में एक Extra Attribute Added रहता है। इसलिए Specific Expiration Time के Trigger होते ही ये Data Expire होकर Delete हो जाते हैं।

चूंकि Time Bound Data को Handle करने के लिए ही Transient API का प्रयोग किया जाता है, इसलिए जो Data एक निश्चित समय के बाद Expire हो जाते हैं, उन्हें Handle करने के लिए ही Transient API का प्रयोग किया जाता है। जबकि जो Data Time Bounded नहीं होते, उन्हें Handle करने के लिए Options API को Use किया जाता है।

Saving Transients

किसी Transient Data को Database में Save करने के लिए हमें WordPress के set_transient() API Function को Use करना होता है, जिसका Syntax निम्नानुसार होता है:

set_transient( $transient, $value, $expiration);

$transient Parameter

ये एक String Parameter होता है, जो Database में Cache होने वाले Data को Uniquely Identify करने का काम करता है। इस Identifier के रूप में हम अधिकतम 45 Characters का प्रयोग कर सकते हैं।

$value Parameter

इस Parameter के रूप में हम Array/Object या Regular Variable प्रयोग कर सकते हैं जो कि Database में Save होने वाले Transient Data को Represent करता है।

$expiration Parameter

ये एक Integer Parameter होता है, जो Seconds के रूप में Expiration Time को Represent करता है। जब हम External Object Caches या Database Upgrade करते हैं, तो उस स्थिति में Transients इस Parameter में Specified Time बीतने से पहले भी Expire हो सकता है।

उदाहरण के लिए यदि हम एक ऐसा Expiring Download Link को WordPress Database की Options Table में Save करना चाहें, जो 24 Hours बाद  Automatically Expire हो जाए, तो इस प्रकार का Download Link Save करने के लिए हम Transient API के इस set_transient() Function को निम्नानुसार Use कर सकते हैं:

set_transient(‘expire_download’, ‘https://www.bccfalna.com/dl.zip’, DAY_IN_SECONDS);

इस Statement के पहले दो Parameters आसानी से समझने योग्‍य हैं जहां पहला Parameter Options Table में Save होने वाले Temporary Data का Unique Identifier है, जबकि दूसरा Parameter वह Temporary Data है, जिसे तीसरे Parameter के रूप में Specified समय में बाद Expire हो जाना है। तीसरे Parameter के रूप में हमने जिस Expire Time Constant को Specify किया है, उसे WordPress Core में निम्नानुसार Define किया गया है:

MINUTE_IN_SECONDS  = 60 (seconds)
HOUR_IN_SECONDS    = 60 * MINUTE_IN_SECONDS
DAY_IN_SECONDS     = 24 * HOUR_IN_SECONDS
WEEK_IN_SECONDS    = 7 * DAY_IN_SECONDS
YEAR_IN_SECONDS    = 365 * DAY_IN_SECONDS

जब हम इस API Function को Use करते हैं, तब हमें Values को Serialize करने की जरूरत नहीं होती। लेकिन यदि Values को Serialize करना जरूरी हो, तो Values को Serialize करने के बाद ही इस API Function में दूसरे Parameter के रूप में Specify करना चाहिए। साथ ही पहले Parameter के रूप में Pass किया जाने वाला मान कभी भी SQL-escaped नहीं होना चाहिए व 45 Character या उससे कम Characters का ही होना चाहिए।

इस Function के Normally Execute होने की स्थिति में ये Function, Specified Value को WordPress Database की Options Table में Save करके true Return करता है, जबकि Fail होने की स्थिति में false Return करता है।

हम इस Function का प्रयोग करके जिस Transient को Save कर रहे हैं, यदि WordPress Database की Options Table में वह Transient पहले से Exist हो, तो ये API Function उस Transient के Expiration Time को नए Expiration Time से Update कर देता है। जबकि Transient के पहले से Exist न होने की स्थिति में ये API Function एक नया Transient Create करता है।

जो Transient कभी भी Expire नहीं होते, वे autoload हो जाते हैं, जबकि Expire होने वाले Transient autoload नहीं होते। इसलिए जब हमें हमारे Transients की जरूरत अपने WordPress Site/Blog के हर Page/Post पर नहीं होताए तब हमें इस विषय में विचार करना जरूरी होता है। क्योंकि जिन Transients की हमें जरूरत नहीं होती] उनके autoload होने से हमारे Site/Blog की Performance पर विपरीत प्रभाव पडता है।

Retrieving Transient

जब हमें set_transient() API Function द्वारा WordPress Database की Options Table में Saved किसी Transient को फिर से Retrieve करना होता है, तब हमें get_transient() API Function को Use करना होता है, जो कि String Parameter के रूप में उस $transient को Accept करता है, जिसे set_transient() API Function के पहले Parameter के रूप में हमने Specify किया था। जैसे:

get_transient(‘expire_download’);

ये API Function Successful होने पर Options Table से Match होने वाला Value Return करता है, जबकि यदि Parameter के रूप में Specified Transient, Options Table में Exist न हो, या उससे Associated Value Exist न हो, या वह Transient Expire हो चुका हो, तो ये Function false Return करता है। इसलिए Return Value को Identity Operator (===) द्वारा Check करने के बाद ही हमें किसी Transient को किसी अन्‍य Purpose के लिए उपयोग में लेना चाहिए। जैसे:

if( false === ( $dl_link = get_transient('expire_download') ) ) {
    // This code runs when no valid transient set using set_transient() API Function
}

Removing Transient

जब पिछली बार set_transient() Function के Execution के बाद Expiration Time Pass हो जाता है, तो हमारा Transient Automatically Expire हो जाता है। लेकिन यदि हम चाहें तो अपनी जरूरत के अनुसार किसी Transient को उसके Expiration Time से पहले भी Expire कर सकते हैं और ऐसा करने के लिए WordPress हमें delete_transient() नाम का API Function Provide करता है। इस API Function में भी हमें उस Transient का नाम Parameter के रूप में Specify करना होता है, जिसे हम Delete करना चाहते हैं। जैसे:

delete_transient(‘expire_download’);

इस API Function को हम कुछ निम्नानुसार Use कर सकते हैं:

<?php
// Create a simple function to delete our transient
function edit_term_delete_transient() {
     delete_transient( 'expire_download' );
}

// Add the function to the edit_term hook so it runs when categories/tags are edited
add_action( 'edit_term', 'edit_term_delete_transient' );
?>

जब हम हमारे किसी Plugin या Theme में इस Code Segment को Specify करने के बाद अपने WordPress Blog/Site की किसी Category या Tag को Edit करते हैं, “edit_term” Action Trigger होता है। परिणामस्वरूप edit_term_delete_transient() Method Execute होता है, जो कि हमारे expire_download Transient को Delete कर देता है।

हालांकि हम हमारी जरूरत के अनुसार इस API Function को Use करके किसी Transient को Manually Delete कर सकते हैं। लेकिन यदि हम इसे Manually Delete न करें, तो Expire Time के Pass होने के बाद Expired Transient Automatically Delete हो जाते हैं।

Transient API का प्रयोग तब किया जाता है, जब हमें बहुत ही कम समय के लिए किसी Data को Save करना होता है। उदाहरण के लिए निम्न परिस्थितियों में हम Transient API का प्रयोग कर सकते हैं:

  • यदि कोई Corporate Blog हो जिसमें Clients को Current Stock Price की जानकारी देनी हो।
  • यदि Blog/Site पर Current Number of Facebook Friends की संख्‍या दिखानी हो।
  • यदि Twitter Account के Last Tweet को Display करना हो।
  • यदि RSS Feed से Fetch होने वाला Latest Article Show करना हो।

इसी प्रकार की और भी यदि कोई स्थिति हो, तो उस स्थिति से सम्बंधित Data को Transient API का प्रयोग करते हुए Handle किया जा सकता है।

WordPress Custom Table - Data Manipulation
WordPress do_shortcode - The Shortcode API

WordPress in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance WordPress in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Advance WordPress in Hindi | Page: 835 | Format: PDF

BUY NOW GET DEMO REVIEWS