Wordpress - 注销时的ajax功能

时间:2014-09-15 11:32:15

标签: php ajax wordpress

我正在使用第三方插件来允许从网站的前端创建帖子。基本上我想要用户可以创建帖子的功能,我可以在管理员后端批准帖子与否。然而,tt有一个AJAX上传器,允许你上传特色图片,但这仅在你登录时有效。我看到ajax调用通过wp-admin / admin-ajax.php和行:

do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );

我无法看到这是如何限制上传或我如何通过此AJAX调用启用上传。

任何帮助表示赞赏。 感谢

1 个答案:

答案 0 :(得分:3)

使用wordpress,Ajax的工作方式略有不同。您可以将其发送到" /wp-admin/admin-ajax.php"而不是通过ajax将信息发送到网址以获取函数。它会触发wp_ajax挂钩,或者在前端的情况下,触发wp_ajax_nopriv。

当此文件接收到信息时,它将匹配ajax函数中的action:变量,以及在前端的情况下添加到wp_ajax_nopriv_钩子的操作或在后端的情况下添加到wp_ajax的操作。

要清楚这只是服务器端代码。您将需要jQuery来触发操作(例如按下按钮),然后将信息发送到操作并检索输出。 e.g

    jQuery('#image').click(function() { // fires when some element with id #image is click on

    jQuery.ajax({
        type: "POST",
        url: "/wp-admin/admin-ajax.php",

        data: {
            action: 'sample_ajax_function', 
            reg: regnum, // any other data you want to send?
            maketaxonomy: '<?php echo $maketaxonomy;?>'
        },
        success: function (output) { // if data is returned from your function you can pick it up using output now. 

        console.log(output); //log it to your console so you can see what is returned.

        },


    });

 });

然后在你的函数文件中。

add_action('wp_ajax_nopriv_sample_ajax_function', 'my_ajax_function');

function my_ajax_function() {
    $reg= $_POST['reg'];

    echo $reg; //output something.
    exit; // no more output
}

如果您正在寻找可用于上传图片的方法,请查看Html multiple file input - javascript access and delete files