在查看了jQuery文档和许多stackexchange社区论坛后,我仍然面临着这个问题。从这里和那里拿一点点帮助我走得这么远,但我被困在我现在的位置。
我正在使用ajax请求尝试加载当前显示的帖子之后的下一篇文章。我遇到的唯一问题是当我尝试执行我的php文件中包含的方法时:
<?php
echo getnext();
function getnext(){
$post = get_post($_POST['id']);
$prevPost = get_previous_post();
return $prevPost->post_content;
}
?>
我可以回显正常传递的POST变量,但是一旦我尝试实际调用该方法,我就会得到500内部服务器错误。
我的AJAX请求如下所示:
setTimeout(function (){
$currid = $('#post_id').val();
$.post("wp-content/themes/stargazer/populate.php",
{
"id":$currid
},
function(data){
//$("#academiccontent").html(data);
alert (data);
});
$('#academiccontent').animate({ 'opacity': 1 });
}, 1000);
任何帮助都会非常感激,我已经坚持了很久了。
谢谢!
答案 0 :(得分:1)
为什么不直接在WordPress中使用AJAX?
最好的方法是在你的主题中添加function.php文件,如下所示:
add_action( 'wp_ajax_getnext', 'getnext' );
function getnext() {
$post = get_post($_POST['id']);
$prevPost = get_previous_post();
return $prevPost->post_content;
die(); // this is required to return a proper result
}
你的javascript改为:
setTimeout(function (){
$currid = $('#post_id').val();
var data = {
"action": "getnext",
"id":$currid
};
$.post(ajaxurl, data,
function(data){
alert (data);
});
$('#academiccontent').animate({ 'opacity': 1 });
}, 1000);
有关WordPress中AJAX的更多信息,请访问:http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)