2014-07-16 4 views
2

jQuery 문서 및 많은 stackexchange 커뮤니티 포럼을 살펴본 후에도이 문제에 여전히 직면 해 있습니다. 여기 저기에서 조금씩 가져 가면 제가 이걸 멀리 할 수있게 도와 줬지만, 지금있는 곳에 붙어 있습니다.Wordpress : 다음 게시물을 얻으려면 AJAX를 사용하십시오.

인스턴트 메신저 요청을 사용하여 현재 표시된 다음 게시물을로드하려고 시도합니다. 내가으로 실행하는 유일한 문제는 내가 방법을 내 PHP 파일에 포함 된 실행하려고 할 때입니다 :

<?php 

echo getnext(); 

function getnext(){ 


$post = get_post($_POST['id']); 

$prevPost = get_previous_post(); 

return $prevPost->post_content; 



} 
?> 

내가 잘 전달되고있는 POST 변수를 에코 수 있지만 실제로 메서드를 호출하려고하면 I 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

나는 WordPress에 AJAX를 사용하여이 기사를 읽는 것이 좋습니다 : http://codex.wordpress.org/AJAX_in_Plugins –

답변

1

WordPress에서 AJAX를 직접 사용하지 않는 이유는 무엇입니까? 이것에

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 
} 

을 그리고 당신의 자바 스크립트 변화 :

가장 좋은 방법은이 같은 테마 뭔가에 파일을 function.php에 추가입니다

setTimeout(function(){ 

    $currid = $('#post_id').val(); 
    var data = { 
     "action": "getnext", 
     "id":$currid 
    }; 

    $.post(ajaxurl, data, 
    function(data){ 
     alert (data); 
    }); 

    $('#academiccontent').animate({ 'opacity': 1 }); 

}, 1000); 
당신이 할 수있는 워드 프레스에서 AJAX에 대한

더 많은 정보 여기에서 찾으십시오 : http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)

+0

당신은 남자입니다! 정말 고마워. 매력처럼 일했습니다. – colinmcp

관련 문제