get_adjacent_post()
использует глобальную $post
в качестве своей контрольной точки, поэтому вам нужно заменить это:
$this_post = get_post($post_id);
на:
global $post;
$post = get_post($post_id);
WordPress также предоставляетget_next_post()
и get_previous_post()
, которые вы можете использовать здесь вместо использования get_adjacent_post()
со всеми этими аргументами.Вот конечный продукт:
<?php
require_once("../../../wp-blog-header.php");
if (isset($_POST['data'])){
$post_id = $_POST['data'];
}else{
$post_id = "";
}
$wp_query->is_single = true;
global $post;
$post = get_post($post_id);
$previous_post = get_previous_post();
$next_post = get_next_post();
$post_id = $next_post->id;
$title = $next_post->post_title;
$dataset = array ( "postid"=>$post_id, "posttitle"=>$title );
//Because we want to use json, we have to place things in an array and encode it for json.
//This will give us a nice javascript object on the front side.
echo json_encode($dataset);
?>
Я не уверен, какие ключи вы хотели бы использовать для идентификаторов и названий предыдущих и следующих сообщений в массиве $dataset
, поэтому я оставлюэто как сейчас.