AJAX- सक्षम प्लगइन्स लिखने की पसंदीदा विधि क्या है?


49

मैं सोच रहा हूं कि AJAX कॉल से निपटने के लिए पसंदीदा तरीका क्या है। क्या POST या एक अलग प्रक्रिया के लिए एक ही प्लगइन php फ़ाइल का उपयोग करना चाहिए? कौन सा क्लीनर या सुरक्षित है?

जवाबों:


47

"सुरक्षित और क्लीनर" तरीका एडमिन-ajax.php का उपयोग करना होगा wp_ajaxजो आपके प्लगइन फ़ाइल से आपके प्रोसेसिंग फ़ंक्शन को कॉल करने के लिए वर्डप्रेस और हुक के साथ आता है और कॉल की अखंडता की जांच करने के लिए wp-nonce का उपयोग करता है।

उदाहरण के लिए:

आपका अजाक्स JQuery कॉल होगा

<script type="text/javascript" >
jQuery(document).ready(function($) {

    var data = {
        action: 'ACTION_NAME',
            Whatever: '1234',
            _ajax_nonce: '<?php echo wp_create_nonce( 'my_ajax_nonce' ); ?>'

    };

    // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
    // If you need it on a public facing page, uncomment the following line:
    // var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
    jQuery.post(ajaxurl, data, function(response) {
        alert('Got this from the server: ' + response);
    });
});
</script>

फिर अपने प्लगइन फ़ाइल में जोड़ें

//if you want only logged in users to access this function use this hook
add_action('wp_ajax_ACTION_NAME', 'my_AJAX_processing_function');

//if you want none logged in users to access this function use this hook
add_action('wp_ajax_nopriv_ACTION_NAME', 'my_AJAX_processing_function');

* यदि आप ajax द्वारा अपने फ़ंक्शन को एक्सेस करने के लिए उपयोगकर्ताओं और मेहमानों में लॉग इन करना चाहते हैं तो दोनों हुक जोड़ें। * ACTION_NAME को आपके ajax POST में कार्रवाई मूल्य से मेल खाना चाहिए।

तब आपके फ़ंक्शन में यह सुनिश्चित करें कि अनुरोध मान्य स्रोत से आया है

function my_AJAX_processing_function(){
   check_ajax_referer('my_ajax_nonce');
   //do stuff here...
}

उम्मीद है की यह मदद करेगा


1
यह कार्यान्वयन केवल व्यवस्थापक पक्ष के लिए अच्छा है? उपयोगकर्ता पक्ष के बारे में क्या? मैं / wp-admin को छिपाना चाहता / चाहती हूं और admin URL बदलना चाहती हूं, इसलिए छिपे हुए URL के लिए अनुरोध अच्छा नहीं होगा
अधर्म
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.