繁体   English   中英

WordPress have_posts()在Functions.php中不起作用

[英]WordPress have_posts() not working inside Functions.php

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

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

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

就像这样:

$my_query = get_posts( $arguments );
if( $my_query ) {
    foreach( $my_query as $p ) {
        echo $p->ID . $p->post_title;
    }
}

如果有任何要循环的结果, have_posts()将返回TRUE,否则返回FALSE。 看来目前没有任何结果。 您是否尝试过调用query_posts($args) have_posts()示例之前调用它: query_posts( 'posts_per_page=5' ); 显示您的5条最新帖子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM