将自定义php文件用于插件内部的AJAX URL

时间:2018-07-06 作者:agahi

在插件的子目录中,我有一个名为insertproducts的文件。php和我需要通过Ajax请求调用它。我有这样的想法:

        $.ajax({ 
            url:  "insertproducts.php",
        }).done(function(data) {
            console.log(data);
        });
但脚本找不到文件,并尝试查找:

http://example.com/wp-admin/insertproducts.php
环顾四周找出问题所在,我了解到WP将所有ajax请求都指向admin ajax。php。

现在如何运行自定义url?

1 个回复
最合适的回答,由SO网友:Quang Hoang 整理而成

了解更多信息AJAX in Plugins.

如何在WP中使用Ajax:1。注册文件包含函数、javascript或jquery事件。所有数据将由events js提交

add_action( \'wp_enqueue_scripts\', \'ajax_scripts\' );
function ajax_scripts() {
    wp_register_script( \'main-ajax\', get_template_directory_uri() . \'/assets/js/main-ajax.js\', array(), \'\', true );
    $arr = array(
        \'ajaxurl\' => admin_url(\'admin-ajax.php\')
    );
    wp_localize_script(\'main-ajax\',\'obj\',$arr );
    wp_enqueue_script(\'main-ajax\');
}
在主ajax中。js(数据将由管理员ajax.php处理):

$.ajax({ 
    url:  obj.ajaxurl,
}).done(function(data) {
    console.log(data);
});
2。通过ajax提交数据后,将PHP文件处理函数(insertproducts.PHP)。对您的功能使用以下操作。

add_action(\'wp_ajax_my_action\', \'my_action\');
add_action(\'wp_ajax_nopriv_my_action\', \'my_action\');

结束