2016-04-20 5 views
-1

Я новичок в wordpress и мне нужно сделать ajax звонок для извлечения json объект обмена выпадающего варианта в wordpress. Я не могу назвать файл php в том же каталоге, поэтому я использовал <?php echo admin_url('custom-file.php'); ?> и поместил php-файл в wp-admin, я могу получить результат с его помощью, но изменения будут удалены при обновлении wordpress. Я смущен, как позвонить файл PHP в том же каталоге, что и файл вызова phpajax call in wordpress

AJAX call in wordpress template Ajax call add current url in wordpress

я нашел эти две ссылки, но не понимает, как это на самом деле work.Any помощь будет признателен ,

Благодаря

+0

Wordpress также обеспечивает обработку манипуляторов и крючков ajax. Разработчик может легко обрабатывать запрос ajax в плагинах или функции theme.php. https://codex.wordpress.org/AJAX_in_Plugins – user5200704

ответ

2

это демо польз AJAX с WordPress ..

пыльник скрипт HTML

<div class="ajax-column"> 
    <div class="options"> 
    <select id="custom-change"> 
     <option value="val1">Val 1</option> 
     <option value="val2">Val 2</option> 
     <option value="val3">Val 3</option> 
     <option value="val4">Val 4</option> 
    </select> 
    </div> 

    <div id="ajax_result_form"> 
    <div id="ajax_text_result"></div> 
    <div class="row"> 
     <div class="" id="ajax_result"> </div> 
    </div> 
    </div> 
</div> 

Это JS скрипт, как мои-АЯКС-script.js

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


jQuery('#custom-change').change(function(e) { 

     var text = jQuery('#custom-change').val();   
     jQuery.ajax({ 
       type: "POST", 
       url: admin_url, 
       dataType:"json", 
       data: { 
        action: 'data_custom_ajax', 
        text: text, 
       }, 
       cache: false, 
       success: function(data){      
        if(data['data_result']==''){ 
         jQuery('#ajax_result').hide();       
        } 
        else{ 
         jQuery('#ajax_result').css('display','block'); 
         jQuery('#ajax_result').html(data['data_result']);        
        } 
       } 
     }); 
    }); 
}); 

Это скрипт WordPress как файл functions.php темы.

function my_enqueue() { 

    wp_enqueue_script('ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery')); 

    wp_localize_script('ajax-script', 'my_ajax_object', array('ajax_url' => admin_url('admin-ajax.php'))); 
} 
add_action('wp_enqueue_scripts', 'my_enqueue'); 

    /* Custom Ajax */ 
    function data_custom_ajax(){  
     $custom_val = $_POST['text']; 

     $testdomin_query = new WP_Query($testdomin_args_search); 
     $testdomin_result=''; 
     if(!empty($custom_val)){ 
      $testdomin_result = _e('Your Action hear','textdomin'); 
     } 
     else 
      $testdomin_result = _e('Not found','textdomin'); 

     echo json_encode(array("data_result"=>$testdomin_result)); 
     die; 
    } 
    add_action('wp_ajax_nopriv_data_custom_ajax', 'data_custom_ajax'); 
    add_action('wp_ajax_data_custom_ajax', 'data_custom_ajax'); 
+0

если у вас проблема, я вам поможем. –

+0

Спасибо, Мансух. я ценю вашу помощь. – Joe