WordPress have_posts() not working inside Functions.php

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:

Read More
add_foobar is trigered 
The End

So can you give me an idea why those functions are not working?

Related posts

Leave a Reply

2 comments

  1. 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 calling query_posts($args)? Call it before the have_posts()
    Example:
    query_posts( 'posts_per_page=5' ); to show your 5 latest posts