विज्ञापन

ajax वर्डप्रेस टिप्पणियाँडिफ़ॉल्ट रूप से, वर्डप्रेस कमेंटिंग सिस्टम बहुत ही अपर्याप्त है - एक मेरी सबसे बड़ी आपत्ति यह है कि एक टिप्पणी पोस्ट करने के लिए, पृष्ठ को ताज़ा करने की आवश्यकता है। आप लाइवफेयर [ब्रोकन URL रिमूव] या जैसे किसी थर्ड पार्टी सिस्टम पर जा सकते हैं Disqus अपने वर्डप्रेस ब्लॉग पर टिप्पणी को प्रोत्साहित करने के 3 तरीकेआपके ब्लॉग पर टिप्पणियाँ प्राप्त करना एक महान प्रेरक है, जो आपको ब्लॉगिंग करने वाले लंबे समय के साथ चल रहा है। बस यह जानते हुए कि कोई व्यक्ति बाहर है, आपके काम की सराहना करना बहुत अच्छा लगता है, लेकिन नहीं ... अधिक पढ़ें , लेकिन अगर आप घर में सब कुछ रखना पसंद करते हैं या किसी अन्य प्रकार का अनुकूलन करते हैं, तो AJAX द्वारा टिप्पणियां पोस्ट करना सबसे कम है जो आपको करना चाहिए।

आप यहां इस पर काम करने का एक उदाहरण देख सकते हैं उपयोग करना - जब आप एक टिप्पणी पोस्ट करते हैं, तो आप पृष्ठ नहीं छोड़ते हैं - इसके बजाय हम इसे एक AJAX कॉल के माध्यम से भेजेंगे, और फिर एक विकल्प दें "धन्यवादवापस नोट करें। पूर्ण ट्यूटोरियल के लिए आगे पढ़ें।

AJAX के रूप में गैर-वर्डप्रेस कार्यों का उपयोग करने के लिए, कृपया मेरी पढ़ें

instagram viewer
पिछले ट्यूटोरियल WordPress में AJAX का उपयोग करने पर एक ट्यूटोरियलAJAX एक उल्लेखनीय वेब तकनीक है जो हमें सरल "लिंक पर क्लिक करें, दूसरे पृष्ठ पर जाएं" से परे ले गई है इंटरनेट की संरचना 1.0। यह वेबसाइटों को गतिशील रूप से लाने और बिना सामग्री प्रदर्शित करने में सक्षम बनाता है उपयोगकर्ता ... अधिक पढ़ें , और वर्डप्रेस से संबंधित सभी लेखों को देखना सुनिश्चित करें।

परिचय

AJAX वर्डप्रेस टिप्पणियों को प्राप्त करने के लिए दो अलग-अलग भागों की आवश्यकता होती है, इसलिए आपको उन लोगों को समझाने की अनुमति देता है जो आपको पूरी प्रक्रिया का अवलोकन देते हैं।

  • पृष्ठ पर कुछ जावास्क्रिप्ट जो उपयोगकर्ता को क्लिक करने के लिए स्वीकार करता है टिप्पणी जोड़ें सबमिट बटन, वह भी इसे AJAX कॉल करता है और प्रतिक्रिया को भी संभालता है।
  • एक PHP हैंडलर जो comment_post एक्शन में हुक करता है

जावास्क्रिप्ट

सबसे पहले, यह जरूरत है jQuery, जैसा कि आजकल वेब विकास में कुछ भी रोमांचक नहीं है। यदि आप सुनिश्चित नहीं हैं कि यह पहले से लोड हो रहा है, तो आगे बढ़ें और जावास्क्रिप्ट कोड को छोड़ दें और इसे वैसे भी आज़माएं - यदि आपके पास फायरबग है और कंसोल लॉग कहता है "jQuery अपरिभाषित है"जब आप पृष्ठ को रीफ्रेश करते हैं, तो इस कार्य को लोड करने के लिए अपने फंक्शन्स.php फ़ाइल में जोड़ें।

function google_jquery () { if (। is_admin ()) {wp_deregister_script ('jquery'); wp_register_script ('jquery', " http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"), असत्य); wp_enqueue_script ( 'jQuery'); }} add_action ('wp_print_scripts', 'google_jquery');

ध्यान दें, कि jQuery लोड करने का एक विस्तृत तरीका है, क्योंकि हम Google CDN के नवीनतम संस्करण का उपयोग कर रहे हैं, जो तेज़ और अधिक है वर्डप्रेस के साथ डिफ़ॉल्ट रूप से शामिल की गई तारीख की तुलना में - इसलिए यह जोड़ना एक अच्छा विचार हो सकता है कि वैसे भी, भले ही jQuery पहले से लोड हो कहीं।

अब, वास्तविक जावास्क्रिप्ट के लिए जो टिप्पणी फ़ॉर्म को संभालेगा, हमारे पास कुछ विकल्प हैं। सबसे आसान है कोड को अपने में पेस्ट करना single.php टेम्प्लेट - मान लें कि आपके पास पृष्ठों के लिए भी सक्षम टिप्पणी नहीं है।

वैकल्पिक रूप से, आप मौजूदा में पेस्ट कर सकते हैं .js आपकी थीम द्वारा उपयोग की गई फ़ाइल, या a बनाएँ नई .js अपने विषय निर्देशिका में फ़ाइल। यदि आप इसे अपनी अलग .js फ़ाइल में रखना चाहते हैं और इसे सीधे अपने थीम टेम्प्लेट में पेस्ट नहीं करते हैं, तो निम्नलिखित पंक्तियों को अपने साथ जोड़ना सुनिश्चित करें functions.php, और ध्यान दें कि फ़ाइल नाम माना जाता है ajaxcomments.js अपने विषय फ़ोल्डर की जड़ में।

add_action ('init', 'ajaxcomments_load_js', 10); फ़ंक्शन ajaxcomments_load_js () {wp_enqueue_script ('ajaxcomments', get_stylesheet_directory_uri ()। / / ajaxcomments.js '); }

यहाँ टिप्पणी फ़ॉर्म को संभालने के लिए जावास्क्रिप्ट है (या आप कर सकते हो इसे पास्टबिन पर देखें):

कोड को तोड़ने के लिए, हम सबसे पहले टिप्पणी फॉर्म के jQuery ऑब्जेक्ट बना रहे हैं (जो आपके टिप्पणी फॉर्म को "टिप्पणी" का डिफ़ॉल्ट css ID मानता है), और इसके ऊपर एक खाली जानकारी पैनल जोड़ना जो हम बाद में उपयोगकर्ता को अपनी टिप्पणी पोस्ट करने की प्रगति के बारे में संदेश प्रदर्शित करने के लिए उपयोग करते हैं।

commentform.submit सबमिट बटन को used हाईजैक ’करने के लिए उपयोग किया जाता है। हम तब प्रपत्र डेटा को क्रमबद्ध करते हैं (इसे डेटा की एक लंबी पंक्ति में बदल देते हैं), "प्रसंस्करण"उस सूचना पैनल में उपयोगकर्ता को संदेश, और AJAX अनुरोध के साथ आगे बढ़ें। AJAX अनुरोध एक है मानक प्रारूप, लेकिन वास्तव में आज इस ट्यूटोरियल के दायरे में - यह कहना पर्याप्त नहीं है कि यह एक सफलता के लिए प्रतिक्रिया करता है या त्रुटि, और फॉर्म को खाली कर देता है यदि वही टिप्पणी गलती से पोस्ट होने से रोकने में सफल होती है दो बार। संदेशों और त्रुटियों को उपयुक्त के रूप में समायोजित करें, या यदि आप किसी भी तरह से बाहर निकलने के लिए त्रुटि संदेशों को पसंद करते हैं, तो अपने विषय की स्टाइलशीट में कुछ उपयुक्त स्टाइल जोड़ें। अंतिम पंक्ति - विवरण झूठा है - फ़ॉर्म को डिफ़ॉल्ट कार्रवाई पूरा करने से रोकता है।

PHP हैंडलर

अंत में, पृष्ठ को ताज़ा करने से रोकने और उपयोगकर्ता को उचित प्रतिक्रिया भेजने के लिए हमें कुछ चाहिए यदि टिप्पणी को मॉडरेट करने या नई टिप्पणी के लेखक को सूचित करने की आवश्यकता है, तो व्यवस्थापक को सूचित करने के साथ-साथ। इसके लिए, हम हुक करते हैं comment_post कार्रवाई जो डेटाबेस में जोड़े जाने के ठीक बाद होती है, और यह पता लगाती है कि क्या यह AJAX अनुरोध था। इसे अपने में जोड़ें functions.php फ़ाइल:

(भी उपलब्ध इस पास्टबिन पर)

add_action ('comment_post', 'ajaxify_comments', 20, 2); फ़ंक्शन ajaxify_comments ($ टिप्पणी_आईडी, $ टिप्पणी_स्टैटस) { ( // अगर AJAX अनुरोध है। स्विच ($ comment_status) { मामला '0': // अनुचित टिप्पणी के मॉडरेटर को सूचित करें। wp_notify_moderator ($ comment_ID); मामला '1': // स्वीकृत टिप्पणी। गूंज "सफलता"; $ टिप्पणी = और get_comment ($ टिप्पणी_आईडी, ARRAY_A); $ पोस्ट = & get_post ($ commentdata [ 'comment_post_ID']); wp_notify_postauthor ($ टिप्पणी_आईडी, $ कमेंटडाटा ['टिप्पणी_टाइप']); टूटना; डिफ़ॉल्ट: गूंज "त्रुटि"; } बाहर जाएं; } }

स्पॉट समस्याएं

यदि पेज AJAX के माध्यम से पोस्ट करने के बजाय अभी भी ताज़ा है, तो यह दो समस्याओं में से एक होने की संभावना है। एक - आपके पास jQuery लोड नहीं हो सकता है। इंस्टॉल Firebug कैसे IE, सफारी, क्रोम और ओपेरा पर Firebug स्थापित करने के लिए अधिक पढ़ें या Chrome डेवलपर टूल सक्षम करें, और त्रुटियों के लिए कंसोल लॉग की जांच करें। यदि jQuery नहीं मिला है, तो जावास्क्रिप्ट अनुभाग पर वापस जाएँ और अपने विषय में jQuery जोड़ने पर पहला बिट पढ़ें। दूसरी संभावना यह है कि आपका विषय टिप्पणी फॉर्म के लिए कुछ विशेष करता है और यह आईडी अब "टिप्पणी" नहीं है। स्रोत कोड की जाँच करें, फिर समायोजित करें var टिप्पणी = $ (comment # टिप्पणी ’) सही आईडी होने के लिए जावास्क्रिप्ट में लाइन - जो काम कर सकती है।

हमेशा की तरह, मैं जितना संभव हो सके उतना अधिक मदद करने के लिए आसपास हूं, लेकिन कृपया उदाहरण URL से लिंक पोस्ट करें जहां मैं त्वरित रूप ले सकता हूं।

जेम्स के पास आर्टिफिशियल इंटेलिजेंस में बीएससी है, और कॉम्पिटिया ए + और नेटवर्क + प्रमाणित है। वह MakeUseOf के प्रमुख डेवलपर हैं, और अपना खाली समय वीआर पेंटबॉल और बोर्डगेम खेलने में बिताते हैं। वह पीसी का निर्माण कर रहा है क्योंकि वह एक बच्चा था।