使用ajax的get_posts不返回任何内容

时间:2019-07-08 08:02:45

标签: javascript php wordpress

我正在尝试将get_posts与slug一起使用,这是从ajax成功接收的。但是,它什么也不返回。请指出我的错误。

我的ajax:

var nextt = document.getElementById("nextt");
nextt.addEventListener("click",function(e){
    event.preventDefault();
    var nextpage = document.querySelector("a[rel=next]").getAttribute("href");
    xhr = new XMLHttpRequest();
    xhr.open('POST', ajaxurl, true);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
    xhr.onreadystatechange  = function(){
        var content = document.getElementById('main');
        if(xhr.readyState  == 4){
            if(xhr.status  == 200) {
                content.innerHTML = xhr.responseText;
            } else{
                content.innerHTML = 'Cannot connect to server. Check your internet connection '}
        }
    };
    xhr.send('action=load_selanjutnya&nonce=' + ajaxnonce + '&value=' + nextpage);
},false);

在我的function.php

function nextpage(){
   global $post;
    print_r($_REQUEST);
    $slug = $_REQUEST['value'];
    $args=array(
        'name' => $slug,
        'post_type' => 'post',
        'post_status' => 'publish',
        'numberposts' => 1
    );
    $my_posts = get_posts( $args );
    if( $my_posts ) {
        foreach ($my_posts as $post)
            setup_postdata( $post );
            get_template_part( 'single-ajax', get_post_format() );
        wp_reset_postdata();
    }
    else {echo $slug . ' - Fail. '; var_dump($my_posts);}
    exit();
}
add_action( 'wp_ajax_nextpage', 'nextpage' );
add_action( 'wp_ajax_nopriv_nextpage', 'nextpage' );

我希望它加载内容页面,而不是没有内容/空白作为回报。

2 个答案:

答案 0 :(得分:0)

请确保...您是否初始化了要在wordpress主题中使用的Ajax?

<script type="text/javascript">
    var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
</script>

应该出现在您的部分中。

答案 1 :(得分:0)

好,此问题已解决。问题是问题本身,它只有“ https://domainname/path”这个路径名,这是一个使我感到困惑的基本问题。

$slug = parse_url($_REQUEST['value'], PHP_URL_PATH);