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 に答える