我正在尝试将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' );
我希望它加载内容页面,而不是没有内容/空白作为回报。
答案 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);