WordPress的have_posts()内的functions.php不工作(WordPress

2019-10-18 20:25发布

我想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

所以,你能不能给我一个想法,为什么这些功能不工作?

Answer 1:

这是因为你必须让自己的查询在功能,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;
    }
}


Answer 2:

have_posts()将返回TRUE,如果它在和FALSE有任何结果,否则循环。 它似乎是它目前没有得到任何结果。 你有没有打过电话query_posts($args) ? 在之前调用它have_posts()实施例: query_posts( 'posts_per_page=5' ); 展现您的5篇最新文章



文章来源: WordPress have_posts() not working inside Functions.php