I want to write a custom next/prev function to dynamically display post information in a fancybox pop-up. So I need to use PHP to get the next and previous Post ID based on whatever Post is currently showing. I know what the current post ID is and I can send that to a function ok, but I can’t figure out how to use that ID to obtain the adjacent IDs.
Edit:Here is my code so far (which is not working)
<?php
require_once("../../../wp-blog-header.php");
if (isset($_POST['data'])){
$post_id = $_POST['data'];
}else{
$post_id = "";
}
$wp_query->is_single = true;
$this_post = get_post($post_id);
$in_same_cat = false;
$excluded_categories = '';
$previous = false;
$next_post = get_adjacent_post($in_same_cat,$excluded_categories,$previous);
$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);
?>
get_adjacent_post()
uses the global$post
as its reference point, so you’ll want to replace this:with this:
WordPress also provides
get_next_post()
andget_previous_post()
, which you can use here instead of usingget_adjacent_post()
with all of those arguments. Here’s the final product:I’m not sure what keys you’d like to use for the IDs and titles of the previous and next posts in the
$dataset
array, so I’ll leave that as is for now.To get this to work I had to change
$next_post->id;
to$next_post->ID;
, i.e. capitaliseID
.I used it in WordPress on index.php like this â I inserted this at the top of the loop:
then within the loop I use this:
`
This is my code, it worked good. $post_id is current post ID.
Then you just call function. Example:
Good luck!