Maybe this is super obvious and staring me in the face, but I’m stumped. Is there a way to pull and sort posts by ID? I’d like to grab an arbitrary post, and then x number of posts after it.
Specifically what I’m trying to do is a build a carousel of posts, and I’d like the first item on every individual post to be the current post, and then everything following it. I’d also like to be able to scroll the carousel backwards. I’m using the JSON API plugin to make AJAX calls to pull the posts.
Basically I just want to add a “WHERE post.id >= currentPost” to the query, but I can’t figure out where to implement this. I tried using the posts_where hook but I always get zero results.
I think you’re on the right path with
posts_where
, something like this should work:Straightforward sorting by ID would be unreliable. Simply put IDs are not guaranteed to be sequential (even if they commonly are). One case would be import with custom IDs for example.
I suggest to look into
get_adjacent_post()
function. It only retrieves one post by default, but it has extensive hooks for its SQL query andLIMIT 1
seems easy to override by filteringget_{$adjacent}_post_sort
hook.However I am not sure how/if that can be implemented with JSON API specifics.
PS do you really need to do this asynchronously via Ajax? Maybe setting up JS variables with data in page source would work better?