首页 文章

ajax调用wordpress

提问于
浏览
-1

我是 wordpress 的新手,我需要调用 ajax 来获取wordpress中下拉选项的更改 json 对象 . 我无法调用同一目录中的 php 文件,因此我使用 <?php echo admin_url('custom-file.php'); ?> 并将php文件放在wp-admin中,我可以使用它获取结果,但更新 wordpress 时更改将被删除 . 我很困惑如何调用与调用 php 文件相同的目录中的php文件

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

我发现这两个链接,但不明白它是如何工作的 . 任何帮助将不胜感激 .

谢谢

1 回答

  • 3

    这是使用WordPress的Custom AJAX 的演示..

    Bellow脚本是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脚本作为my-ajax-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');
    

相关问题