无法在我的自定义wordpress插件中进行ajax调用

时间:2014-12-11 09:20:43

标签: jquery ajax wordpress

我正在写一个wordpress插件。在我之间我试图进行ajax调用,但我无法将数据发布到我正在寻找的php文件。到目前为止,我已经google了很多,并找到了一些代码片段,但似乎没有什么工作方式我正在寻找。

以下是我目前正在实施的代码段。

<script>
    $(document).ready(function(){
        $('#status').change(function(){
            $.post( "index.php", { id: "1", status: "2" } );
        });
    });
</script>

我希望重定向到我的插件index.php文件以进行其余的数据库操作。但它将我重定向到wp-admin / index.php页面。

1 个答案:

答案 0 :(得分:0)

试试这个:

将ajax操作放在主插件文件中

add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );
add_action( 'wp_ajax_my_action', 'my_action_callback' );

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

    $id = intval( $_POST['id'] );
    $status = $_POST['status'];

    echo 'whatever';

    die(); // this is required to terminate immediately and return a proper response
}

并像这样调用你的ajax函数:

<script>
    jQuery(document).ready(function($){
      var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
      var data = {
        'action': 'my_action',
        'id'    : '1',
        'status': '2'
      };
      // We can also pass the url value separately from ajaxurl for front end AJAX implementations
      jQuery.post(ajaxurl, data, function(response) {
        alert('Got this from the server: ' + response);
      });
    });
</script>