麻烦在Wordpress FrontEnd中使用AJAX和jquery

时间:2016-05-16 07:09:57

标签: ajax wordpress

您好我正在为Word Press开发插件, 管理区域都可以,但我想在前端使用AJAX将一些数据发送到我的服务器。 我在jquery中使用AJAX,如

jQuery.AJAX({ 我的代码..... })

但它不起作用,因为相同的代码方法在管理员方面运作良好。 我发布数据的文件位于我的插件目录中 我附上代码,请检查我做错了什么,谢谢

这是前端文件

jQuery(document).ready(function(){
         
           var url= jQuery('#url').val();
            jQuery.ajax({
                type:"POST",
                URL:url,
                data:{
                    data:'azam'
                },
                success:function(data)
                {
 
                }
 
            })
 
        });

这是我的php文件

function hello($a)
{
    $a = $_POST['data'];
    echo $a;

}
add_action('wp_ajax_hello', 'hello');
add_action('wp_ajax_nopriv_hello', 'hello');

请不要给我在线链接caz我已经搜索整个互联网但我不知道它是如何工作的。请帮忙

2 个答案:

答案 0 :(得分:0)

您的代码看起来大致正确,但这是我的发现:

  1. 在hello函数的最后添加die();

  2. 您使用的是正确的管理员ajax网址吗?

  3. 将此添加到您的functions.php以输出admin ajax url。

    function ajaxurl() {
    ?>
    <script type="text/javascript">
    var AjaxUrl = "<?php echo admin_url('admin-ajax.php'); ?>";
    </script>
    <?php
    }
    
    add_action('wp_head','ajaxurl');
    
    1. 您需要在数据中添加操作参数

          .ajax({
              type:"POST",
              URL:AjaxUrl, // is this url correct? it should be admin ajax url
              data:{
                  action:'hello',
                  data:'azam'
              },
      

答案 1 :(得分:0)

如果您使用wp_enqueue_script,我建议您在主php文件中添加此功能。

function plugin_ajax_articles()
{
   wp_enqueue_script( "your_js_file", get_stylesheet_directory_uri() . '/your_js_file.js', array('jquery'), "1.0.0", true );

   wp_localize_script( 'your_js_file', 'url', admin_url( 'admin-ajax.php' ) );
}
add_action("init", "plugin_ajax_articles");

然后在ur js文件中,URl将起作用。 不要忘记添加&#34; die();&#34;在你的php函数结束时。

如果你有时间,请阅读这篇文章=&gt; Tuto Ajax WordPress

我希望帮助你:)