I want to ajaxify TwentyThirteen WordPress template and I have a function in functions.php
function prefix_ajax_add_foobar() {
echo("add_foobar is trigered <br/>");
if ( have_posts() ) { echo ("have posts <br/>");
while ( have_posts() ) {
the_post(); echo ("the_post() <br/>");
the_ID(); echo ("the_ID() <br/>");
}
}
die("The End");
}
But I only see those results:
add_foobar is trigered
The End
So can you give me an idea why those functions are not working?
That’s because you have to make your own query in that function, Ajax isn’t aware of your current loop. And you’d be better using
get_posts()
, see When should you use WP_Query vs query_posts() vs get_posts()?It’ll be something like:
have_posts()
will return TRUE if it has any results to loop over and FALSE otherwise. It does seem that it is currently not getting any results. Have you tried callingquery_posts($args)
? Call it before thehave_posts()
Example:
query_posts( 'posts_per_page=5' );
to show your 5 latest posts