为什么我不能在侧边栏中使用setup_postdata($ post)?

时间:2012-10-28 14:29:42

标签: php wordpress

我创建了一个函数,它接受一个参数 - post类型,并将输出每个帖子中的一些html和标题,内容等。但是,我希望能够使用与$ post相关联的函数,尤其是the_excerpt。但是,当我尝试在我的侧边栏php小部件中使用我的功能时,它只是输出主页的标题和内容,而不是自定义查询发布信息。

如果我在页面中运行该功能,它可以正常工作,并回显自定义查询的帖子详细信息。你可能会问为什么我不把它放在侧边栏中,这太乱了,我会用不同的自定义帖子重复使用它,所以我想我会写一个函数。

我的功能:

function myRecentPosts($postType){
 wp_reset_postdata();
   $args = array( 'post_type' => $postType,'posts_per_page' => 3);
   $recentPosts = get_posts( $args );

   foreach($recentPosts as $post){
      setup_postdata($post);  ?>                  
    <article>
      <h1><?php the_title();?></h1>
      <?php the_excerpt();?>
    </article>

 <?php 
  }
   wp_reset_postdata();

}

1 个答案:

答案 0 :(得分:0)

您是否检查过单个/ home / index或主要php文件中是否有自定义循环?

如果您使用了1个以上的循环,请在循环和循环处添加此行..

<?php wp_reset_query(); ?>