Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 来自前端的Ajax调用无法使用wordpress_Php_Ajax_Wordpress_Wp Admin - Fatal编程技术网

Php 来自前端的Ajax调用无法使用wordpress

Php 来自前端的Ajax调用无法使用wordpress,php,ajax,wordpress,wp-admin,Php,Ajax,Wordpress,Wp Admin,在WordPress中,从前端调用Ajax不起作用,我只想根据id从db中调用数据,这是我迄今为止尝试过的 //Frontend view <a href="javascript:void(0)" onclick="getDetails(<?=$index;?>)" > <?php echo $value ?> </a> //Functions.php function my_enqueue() { wp_

在WordPress中,从前端调用Ajax不起作用,我只想根据id从db中调用数据,这是我迄今为止尝试过的

//Frontend view

<a href="javascript:void(0)" onclick="getDetails(<?=$index;?>)" >
        <?php echo $value ?>
    </a>

//Functions.php

function my_enqueue() {
      wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/assets/js/ajax-script.js', array('jquery') );
      wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
 }

 add_action( 'wp_enqueue_scripts', 'my_enqueue' );
 add_action('wp_ajax_nopriv_more_posts', 'get_more_posts');

function get_more_posts(){
    // How to get id here to query for the database
    echo "Hello World";
    exit(); 
}

// Ajax scripts File
function getDetails(id)
{
jQuery.ajax({
    url: more_posts.ajax_url,
    type: "GET",
    data: {
        action: 'more_posts'
    },
    dataType: "html",
    success: function(response){
        alert(response);
    }
});
}
//前端视图
//Functions.php
函数my_enqueue(){
wp_enqueue_script('ajax script',get_template_directory_uri()。/assets/js/ajax script.js',array('jquery');
wp_本地化_脚本('ajax脚本','my_ajax_对象',数组('ajax_url'=>admin_url('admin ajax.php'));
}
添加_操作('wp_排队_脚本','my_排队');
添加操作(“wp\u ajax\u nopriv\u more\u posts”,“get\u more\u posts”);
函数get_more_posts(){
//如何在此处获取id以查询数据库
呼应“你好世界”;
退出();
}
//Ajax脚本文件
函数getDetails(id)
{
jQuery.ajax({
url:more_posts.ajax_url,
键入:“获取”,
数据:{
行动:“更多帖子”
},
数据类型:“html”,
成功:功能(响应){
警报(响应);
}
});
}
我得到了这个错误

引用错误未定义更多\u帖子

//前端视图
//Functions.php
函数my_enqueue(){
wp_enqueue_script('ajax script',get_template_directory_uri()。/assets/js/ajax script.js',array('jquery');
wp_本地化_脚本('ajax脚本','my_ajax_对象',数组('ajax_url'=>admin_url('admin ajax.php'));
}
添加_操作('wp_排队_脚本','my_排队');
添加操作(“wp\u ajax\u nopriv\u more\u posts”,“get\u more\u posts”);
函数get_more_posts(){
//如何在此处获取id以查询数据库
呼应“你好世界”;
echo$_GET['id'];
退出();
}
//Ajax脚本文件
函数getDetails(id)
{
var id=id;
jQuery.ajax({
url:url:my_ajax_object.ajax_url,
键入:“获取”,
数据:{
行动:“获取更多帖子”,
id:id,
},
数据类型:“html”,
成功:功能(响应){
警报(响应);
}
});
}
这应该管用!您不需要带有“
href
”、
url:my_ajax\u object.ajax\u url
”的绝对路径或变量,因为您已经用
wp\u enqueue\u script
添加了admin-ajax.php。谢谢你误会了

  url: more_posts.ajax_url
因为本地化脚本名称是我的\u ajax\u对象

 wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
试试这个

 url: my_ajax_object.ajax_url

操作:“more_posts”-more_posts看起来不像有效的URL。将其更改为
/page/url/to/call
您应该定义更多的帖子,比如var more_posts='http://'@Sakezzz他不需要协议或域,只需要绝对路径谢谢,我现在让ajax工作了,有路径问题。如何在get_more_posts()函数中获取id?
 url: my_ajax_object.ajax_url