基于wordpress的ajax写法详解

想针对一个wordpress的模板程序进行更改,想到ajax的方便,就研究了一下。

以下是使用方法和代码:

js页面如下

<script>
  var ajaxurl = '<?php echo admin_url('admin-ajax.php')?>';
  function getVideo(id){
		//必须使用以下里面才能正常使用jquery
    jQuery(document).ready(function($){
      var data={
        tape:id,
				//这里尤为重要,action的参数要和请求的函数名一致
        action : 'get_ajax_video',
      }
      $.post(ajaxurl, data, function(response) {
        $('.player').html(response);
      });
    });
  }
</script>

AJAX请求应该指向wp-admin/admin-ajax.php。虽然”admin”这个词有点容易误导人,不过即使是前台的ajax请求,也应该定位到admin-ajax.php。

admin-ajax需要一个参数“action”。admin-ajax需要这个参数来处理请求,它通常触发一个hook,根据是否登录有所不同。

然后在插件或者主题里写函数

function get_ajax_video() {
  // 输出响应
  header( "Content-Type: application/json" );
  echo json_encode($html);
  exit;//这个停止一定要写
}
//函数名对应添加上,第一个表示用户没有登录时,这里全部都一样处理
add_action( 'wp_ajax_nopriv_get_ajax_video', 'get_ajax_video' );
add_action( 'wp_ajax_get_ajax_video', 'get_ajax_video' );

相关推荐