2012-05-29 20 views
10

मैं जानना चाहता था कि AJAX कॉल में query_post() जैसे फ़ंक्शन का उपयोग करने का कोई तरीका है या नहीं?एजेक्स कॉल में वर्डप्रेस फ़ंक्शंस का उपयोग कैसे करें

मान लीजिए कि मैं फोन कर रहा हूँ चलो फ़ाइल _inc/ajax.php

मैं वर्डप्रेस कार्यों का उपयोग करने के लिए abble होना चाहता हूँ, लेकिन मैं पता नहीं क्यों। क्या कोई इसके लिए मेरी मदद कर सकता है?

धन्यवाद एक बहुत :)

उत्तर

26

वर्डप्रेस एक अजाक्स यूआरएल प्रदान करता है जिसे आपको Ajax API के साथ उपयोग करना चाहिए।

आपको एक jQuery फ़ंक्शन बनाने की आवश्यकता है।

उदाहरण:

jQuery(document).ready(function($) { 

    var data = { 
     action: 'my_action', 
     whatever: 1234 
    }; 

    jQuery.post(ajaxurl, data, function(response) { 
     alert('Got this from the server: ' + response); 
    }); 
}); 

ajaxurl वर हमेशा व्यवस्थापक पक्ष पर उपलब्ध है। यदि आप इसे फ्रंट एंड पर इस्तेमाल करते हैं तो आपको इसे परिभाषित करने की आवश्यकता है।

फिर एक PHP फ़ंक्शन जहां आप अपनी क्वेरी चला सकते हैं। PHP फ़ंक्शन wp_ajax_your_action क्रिया से जुड़ा होना चाहिए।

उदाहरण:

add_action('wp_ajax_my_action', 'my_action_callback'); 

function my_action_callback() { 
    global $wpdb; // this is how you get access to the database 

    $whatever = intval($_POST['whatever']); 

    $whatever += 10; 

     echo $whatever; 

    die(); // this is required to return a proper result 
} 

आप मोर्चे पर इसका इस्तेमाल करने की कार्रवाई खत्म की जरूरत है होगा wp_ajax_nopriv_your_action

+0

अरे, मैं इसे देख रहा हूं, आपको बताता है कि यह कैसे काम करता है :) –

+0

@Chris_O इसके लिए धन्यवाद, यह वास्तव में मेरी मदद करता है। इसके लिए +1 – Toretto

0

मैं अत्यधिक JSON एपीआई प्लगइन की सिफारिश: http://wordpress.org/extend/plugins/json-api/। यह query_post सहित सबसे आम वर्डप्रेस फ़ंक्शंस के लिए एक विश्वसनीय इंटरफ़ेस प्रदान करता है और आपको अपने स्वयं के कार्यों को जोड़ने की अनुमति देता है।

+0

अरे, धन्यवाद का उपयोग कर पदों के लिए उदाहरण है, लेकिन इसे का उपयोग कुछ सादे पाठ को पुनः प्राप्त करने के लिए संभव है यह एपीआई? या यह सिर्फ कुछ डेटा है जिसे मुझे जावास्क्रिप्ट के बाद डिजाइन करने की आवश्यकता है? –

1

आप अपने विषयों में कार्य बनाने के लिए wp_ajax_your_action कार्रवाई व्यवस्थापक के लिए है functions.php यहाँ लोड लोकप्रिय ajax

function getPopularPosts() 
{ 
    $popularpostdata = wpp_get_mostpopular_data(); 
    foreach($popularpostdata as $populardata) 
     { 
      $cur_id = $populardata->id; 
      $cur_date = $populardata->post_date; 
      $cur_date = date("F j, Y", strtotime($cur_date)); 
    ?> 
    <article id="<?php echo $populardata->post_slug.'_mp';?>" data-attr-post-title="<?php echo $populardata->title; ?>" <?php post_class(); ?>> 
     <p class="advt_disclosure"><?php echo advtdescloser(); ?></p> 
     <?php 
     echo '<h6>'.getCategoryLink().'</h6>'; 
     $post_mp = get_post($cur_id); 
     ?> 
     <h1><?php echo $populardata->title;?></h1> 
     <div class="entry-content"> 
     <div class="post-details"> <?php echo getAuthorData($post_mp->post_author,$cur_id,$populardata->title,$cur_date); ?> </div> 
     <div class="collapsediv"> 
      <div class="row"> 
      <div class="col-sm-9 post_article"> 
       <?php 
        $content = $populardata->postcontent; //$content_post->post_content; 
        $content = apply_filters('the_content', $content); 
        $content = str_replace(']]>', ']]&gt;', $content); 
        echo $content; 
        wp_link_pages(array(
         'before'  => '<div class="page-links"><span class="page-links-title">' . __('Pages:', 'twentyfifteen') . '</span>', 
         'after'  => '</div>', 
         'link_before' => '<span>', 
         'link_after' => '</span>', 
         'pagelink' => '<span class="screen-reader-text">' . __('Page', 'twentyfifteen') . ' </span>%', 
         'separator' => '<span class="screen-reader-text">, </span>', 
        )); 
       ?> 
       <p class="tags"> TAGS: <?php echo get_the_tag_list('', __(', ', 'twentyfifteen'))?></p> 
      </div> 
      <div class="col-sm-3 hot_deal"> <?php echo getAdvertisements(); ?> </div> 
      <div class="col-sm-12 comment_section"> <?php echo getPostCommentsandSocialmediasharing($post_mp->post_author,$cur_id,$populardata->title); ?> </div> 
      </div> 
     </div> 
     </div> 
     <footer class="entry-footer"> 
     <?php //twentyfifteen_entry_meta(); ?> 
     <?php //edit_post_link(__('Edit', 'twentyfifteen'), '<span class="edit-link">', '</span>'); ?> 
     </footer> 
     <div class="expander"> 
     <button class="expand" data-text-swap="Close article">expand article</button> 
     </div> 
    </article> 
    <?php } 
    exit(); 
} 
add_action('wp_ajax_getPopularPosts', 'getPopularPosts'); 
add_action('wp_ajax_nopriv_getPopularPosts', 'getPopularPosts');` 

And for call ajax you need to put some where in your themes footer.php 

`$(".popular_posts").click(function(e) { 
        e.preventDefault(); 
        if($('.popularposts').html().length==0) 
        { 
         $('.popularposts').html('<p class="text-center" style="margin-top:40px;"><img src="<?php echo get_home_url(); ?>/wp-content/themes/twentyfifteen/images/ajax-loader.gif"></p>'); 
         $.ajax({ 
          type: 'POST', 
          url: "<?php echo get_home_url(); ?>/wp-admin/admin-ajax.php", 
          data: { 
           action: 'getPopularPosts' 
          }, 
          success: function(data) { 
           $('.popularposts').html(data); 
          } 
         }); 
        } 
       }); 
संबंधित मुद्दे