1

我想 ajaxify TwentyThirteen WordPress 模板,我在 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");
}

但我只看到这些结果:

add_foobar is trigered 
The End

那么你能告诉我为什么这些功能不起作用吗?

4

2 回答 2

2

那是因为您必须在该函数中进行自己的查询,Ajax 不知道您当前的循环。你会更好地使用get_posts(),请参阅何时应该使用 WP_Query vs query_posts() vs get_posts()?

它会是这样的:

$my_query = get_posts( $arguments );
if( $my_query ) {
    foreach( $my_query as $p ) {
        echo $p->ID . $p->post_title;
    }
}
于 2013-10-25T20:05:18.947 回答
0

have_posts()如果有任何结果要循环,则返回 TRUE,否则返回 FALSE。目前看来确实没有任何结果。你试过打电话query_posts($args)吗?have_posts() 在示例 之前调用它:query_posts( 'posts_per_page=5' );显示您的 5 个最新帖子

于 2013-10-25T19:52:43.277 回答