从ajax中的wordpress调用PHP函数?

时间:2013-06-06 06:18:33

标签: php ajax wordpress jquery

reset.php文件:

 <?php 
    add_action('admin_init','popup_template_reset_options');

    function popup_template_reset_options() 
        {
        delete_option('popup_template_on');
        delete_option('popup_template_close');
        delete_option('popup_template_escape');
        delete_option('popup_template_external');
        delete_option('popup_template_home_page');
        delete_option('popup_template_all_pages');
        delete_option('popup_template_template');
        delete_option('popup_cookies_display_after_like');
        add_option('popup_cookies_display_after_like','365');
        //add_option('popup_template_on','1');
        add_option('popup_template_close','1');
        add_option('popup_template_escape','1');
        add_option('popup_template_external','1');
        add_option('popup_template_force_timer','2');
        add_option('popup_template_home_page','1');
        add_option('popup_template_all_pages','1');
        add_option('popup_template_template','2');

    }
    ?>

脚本Ajax:

<script type="text/javascript">
    $(document).ready(function() {
        $('#reset_general').click(function()
        {
            $('#result1').css("display", "block");
            jQuery('#result1').animate({'opacity': '1'});

        });
    });
    function resetgeneral() {
        $.ajax({type: 'POST', url: '<?php echo WP_PLUGIN_URL; ?>/fantasticpopuptemplate/inc/reset.php', success: function(response) {

                //$('#fff').find('.form_result').html(response);
                $('#result1').css("display", "none");
                $('#resets1').css("display", "block");
                $('#resets1').html("Settings Resets");
                $('#resets1').fadeOut(2500, "linear");
            }});

        return false;
    }

</script>
<form onsubmit="return resetgeneral();" id="form_general_reset" class="form-1">
    <input type="submit" value="Reset" id="reset_general" name="reset" class="button-secondary"/>
    <input name="action" type="hidden" value="reset" />

</form>

嗨我试图在ajax中调用php重置功能但是当我谷歌搜索时我知道不是直接调用php函数的可能性所以我把那个特定的函数放在单独的php文件中并调用那个php文件我不知道我怎么能在ajax中这样做我尝试了上面的代码但没有任何反应。设置重置消息出现。我怎么能这样做任何帮助都会很棒。在使用ajax概念之前,我尝试在php中使用isset函数但是它每次都会加载页面,只有我跳进了ajax。

1 个答案:

答案 0 :(得分:6)

依靠admin_ajax.php,有一种在WordPress插件中实现AJAX的标准方法。文件名具有误导性,因为它也可以在前端使用,方法是将函数分配给AJAX操作。

WordPress Codex有一个很好的描述:

http://codex.wordpress.org/AJAX_in_Plugins

要注意的一件事是:你的AJAX处理函数总是必须用die()命令终止,以避免WordPress输出额外的'0'。