2

我有用于将电子邮件地址添加到新闻列表的 php 文件,该文件位于我的 wp-content/plugins 目录中

我的文件名为 add_subscriber.php

我认为我的 htaccess 出于某种原因阻止了此文件

我的 htaccess 文件如下

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

当我尝试调用此文件时,它会以某种方式重定向到 404 页面。

我的 AJAX 代码

<script>
    <?php echo 'var blog_url = \''.get_bloginfo('wpurl').'\''; ?>;


function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}

function subscribeMailList(){
    email=jQuery("#ml-email").val();
    if(!validateEmail(email)){
        return false;
    }
    //jQuery("#ml-img").fadeIn(0);
    //jquery ajax request
    var url=blog_url+"/wp-content/plugins/mail-list/ajax/add_subscriber.php"

    console.log(url);

    jQuery.post(url,{emailaddress:email},function(result){
        if(result=="true"){
            $("#newsletter-form-succeeded").css("display","block");
            $("#newsletter-form").css("display","none");
        }      
    });

    //hide the form
    /*jQuery("#ml-img").fadeOut(0);
    jQuery('#ml-p').fadeOut(0);
    jQuery('#ml-p-sent').fadeIn(0);
    jQuery('#ml-form').fadeOut(0);
    jQuery('#ml-newsletterform').delay(3000).fadeOut(1000);*/
    return false;
}

</script>
4

1 回答 1

2

如果您想在 WordPress 中使用 AJAX,您需要确保 AJAX 请求通过wp-admin文件夹中的admin-ajax.php文件。

看看这篇详细解释的文章:

http://wp.smashingmagazine.com/2011/10/18/how-to-use-ajax-in-wordpress/

于 2014-04-08T18:54:00.490 回答