add_action('wp_ajax_nopriv_bigfa_download', 'downloadss');//未登录用户的AJAX请求处理函数 downloadss为写入自定义字段的函数名
add_action('wp_ajax_bigfa_download', 'downloadss');//登录后所提交的AJAX处理函数
如何将网站前台的信息或者数据存入到网站后台指定的位置呢?常用的方法是直接写入数据库,然后在网站后台再读取数据库。如果你存入的数据比较少的话,使用这种方法就是高射炮打蚊子了。
对于强大的 WordPress 程序来说,它提供了一个非常棒的文件就是 admin-ajax.php,但实际使用比较少。我们可以通过 admin-ajax.php 来将网站前台的数据直接存入后台,并且是 AJAX 无刷新的方式,非常好用。下面讲一下 WordPress 通过 admin-ajax.php 传递值创建/存入文章字段的思路。
首先是传递数据。前台传递数据,我们可以直接使用 JQUERY 点击事件来传递给 admin-ajax.php;代码如下:
<a data-action="download" data-cansu="参数" data-id="<?php the_ID(); ?>" class="download" href="">提交按钮</a>
写好了点击事件后,就要有一个函数来接收这个点击传递的各个参数
<script type="text/javascript">
$(document).ready(function() {
//定义一个函数
$.fn.postdownload = function() {
//获取参数
var id = $(this).data("id"),//文章ID
cansu=$(this).data("cansu"),//参数值
action = $(this).data('action');//用于后期判断
//传递的参数
var ajax_data = {
action: "bigfa_download",//定义一下action名
um_id: id,
um_action: action
};
//POST给admin-ajax.php处理
$.post("<?php bloginfo('url');?>/wp-admin/admin-ajax.php", ajax_data,
function(data) {
});
return false;
};
//通过点击事件来传递参数
$(document).on("click", ".download",
function() {
$(this).postdownload();
});
});
</script>
admin-ajax.php 接收到传来的参数后,就是处理这些参数。处理参数,WORDPRESS 有二个函数来处理 admin-ajax.php 的参数。分别是 wp_ajax_nopriv_action 名和 wp_ajax_action 名;
将以下的代码写入 functions.php 中;
add_action('wp_ajax_nopriv_bigfa_download', 'downloadss');//未登录用户的AJAX请求处理函数 downloadss为写入自定义字段的函数名
add_action('wp_ajax_bigfa_download', 'downloadss');//登录后所提交的AJAX处理函数
再后,就是将处理函数处理的参数写入到自定义字段中。
定义一个处理函数 downloadss,用于写入数据;
function downloadss(){
global $wpdb,$post;
$id = $_POST["um_id"];
$cansu = $_POST["cansu"];
$action = $_POST["um_action"];
//判断是不是通过指定点击来的参数
if ( $action == 'download'){
//存入自定义字段download,如果没有这个字段,会自动创建
update_post_meta($id, 'download', $cansu);
}
die;
}
上面的代码也放在 functions.php 中,在上一步代码的下面即可。
这样前台通过点击传来的参数就被保存到某个自定义字段了。
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!