Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Wordpress上正确调用ajax url?_Php_Jquery_Wordpress - Fatal编程技术网

Php 如何在Wordpress上正确调用ajax url?

Php 如何在Wordpress上正确调用ajax url?,php,jquery,wordpress,Php,Jquery,Wordpress,我有这个剧本: <script> (function($){ load_data(); function load_data(query) { jQuery.ajax({ url:"fetch.php", method:"post", data:{query:query}, success:function(d

我有这个剧本:

<script>
(function($){
    load_data();
    function load_data(query)
    {
        jQuery.ajax({
            url:"fetch.php",
            method:"post",
            data:{query:query},
            success:function(data)
            {
                $('#result').html(data);
            }
        });
    }
    
    $('#search_text').keyup(function(){
        var search = $(this).val();
        if(search != '')
        {
            load_data(search);
        }
        else
        {
            load_data();            
        }
    });
})(jQuery);
</script>

(函数($){
加载_数据();
函数加载\u数据(查询)
{
jQuery.ajax({
url:“fetch.php”,
方法:“张贴”,
数据:{query:query},
成功:功能(数据)
{
$('#result').html(数据);
}
});
}
$(“#搜索_文本”).keyup(函数(){
var search=$(this.val();
如果(搜索!='')
{
加载_数据(搜索);
}
其他的
{
加载_数据();
}
});
})(jQuery);
在一个php文件上,但我经常收到一个错误,因为Wordpress无法识别ajax url(fetch.php),它试图在我的域中生成一个新的url


我如何才能正确地完成它?

您需要使用
wp\u ajax
wp\u ajax\u nopriv
动作挂钩来使用WordPress ajax。检查下面的代码

调用您需要使用的
wp\u ajax
wp\u ajax\u nopriv
动作挂钩 WP
admin\uURL('admin-ajax.php')
这将返回WordPers的ajax url

并且,还要在jQuery.ajax
data
params中传递
action

检查下面的代码。代码放入活动的theme functions.php文件中

function call_ajax(){ ?>
    <script>
        (function($){

            load_data();
            
            $('#search_text').keyup(function(){
                var search = $(this).val();
                if(search != ''){
                    load_data(search);
                }else{
                    load_data();            
                }
            });

            function load_data( query ){
                jQuery.ajax({
                    url:"<?php echo admin_url('admin-ajax.php'); ?>",
                    method:"post",
                    data:{acion:'your_action_name',query:query},
                    success:function( data ) {
                        $('#result').html( data );
                    }
                });
            }

        })(jQuery);
    </script>
<?php }
add_action( 'wp_footer', 'call_ajax', 10, 1 );

add_action( 'wp_ajax_your_action_name', 'your_action_name' );
add_action( 'wp_ajax_nopriv_your_action_name', 'your_action_name' );
function  your_action_name(){
    echo "ajax call";
    echo $_POST['query'];
    die;
}
函数调用\u ajax(){?>
(函数($){
加载_数据();
$(“#搜索_文本”).keyup(函数(){
var search=$(this.val();
如果(搜索!=''){
加载_数据(搜索);
}否则{
加载_数据();
}
});
函数加载\u数据(查询){
jQuery.ajax({
url:“”,
方法:“张贴”,
数据:{acion:'your_action_name',query:query},
成功:功能(数据){
$('#result').html(数据);
}
});
}
})(jQuery);

我还强烈建议将JS移动到一个单独的文件中,并使用本地化功能,除非您有令人信服的理由不这样做